home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / INTER52D.ZIP / MEMORY.LST < prev    next >
File List  |  1996-10-20  |  82KB  |  2,147 lines

  1. MEMORY MAP            Release 52        Last change 20oct96
  2. Copyright (c) 1989,1990,1991,1992,1993,1994,1995,1996 Ralf Brown
  3.  
  4. --------H-M00000000--------------------------
  5. MEM 0000h:0000h R - INTERRUPT VECTOR TABLE
  6. Size:    1024 BYTEs
  7. Note:    see also the main interrupt list
  8. --------b-M0000031D--------------------------
  9. MEM 0000h:031Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 47 HARD DISK PARMS
  10. Size:    16 BYTEs
  11. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  12.       the interrupt table for the extended BIOS data area
  13. SeeAlso: MEM 0000h:032Dh,INT 41
  14. --------b-M0000032D--------------------------
  15. MEM 0000h:032Dh - 1989 AMI 386sx BIOS - USER-DEFINABLE TYPE 48 HARD DISK PARMS
  16. Size:    16 BYTEs
  17. Note:    these fields are used if the AMI BIOS setup is set to use the top of
  18.       the interrupt table for the extended BIOS data area
  19. SeeAlso: MEM 0000h:031Dh,INT 46
  20. --------B-M00000400--------------------------
  21. MEM 0000h:0400h - BIOS DATA AREA
  22. Size:    256 BYTEs
  23. Note:    see also the MEM 0040h:xxxxh entries
  24. ----------M00000500--------------------------
  25. MEM 0000h:0500h - DATA AREA
  26. Size:    256 BYTEs
  27. ----------M00000600--------------------------
  28. MEM 0000h:0600h - MS-DOS 1.x LOAD ADDRESS
  29. ----------M00000700--------------------------
  30. MEM 0000h:0700h - MS-DOS 2+ LOAD ADDRESS
  31. ----------M00400000--------------------------
  32. MEM 0040h:0000h - BASE I/O ADDRESS OF FIRST SERIAL I/O PORT
  33. Size:    WORD
  34. Notes:    the BIOS sets this word to zero if is unable to find any serial ports
  35.       at the addresses it is programmed to check at boot
  36.     DOS and BIOS serial device numbers may be redefined by re-assigning
  37.       these values of the base I/O addresses stored here
  38. SeeAlso: MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:0008h
  39. SeeAlso: MEM 0040h:007Ch
  40. ----------M00400002--------------------------
  41. MEM 0040h:0002h - BASE I/O ADDRESS OF SECOND SERIAL I/O PORT
  42. Size:    WORD
  43. Note:    the BIOS sets this word to zero if is unable to find more than one
  44.       serial port at the addresses it is programmed to check at boot
  45. SeeAlso: MEM 0040h:0000h,MEM 0040h:0004h,MEM 0040h:0006h,MEM 0040h:000Ah
  46. SeeAlso: MEM 0040h:007Dh
  47. ----------M00400004--------------------------
  48. MEM 0040h:0004h - BASE I/O ADDRESS OF THIRD SERIAL I/O PORT
  49. Size:    WORD
  50. Note:    the BIOS sets this word to zero if is unable to find more than two
  51.       serial ports at the addresses it is programmed to check at boot
  52. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0006h,MEM 0040h:000Ch
  53. SeeAlso: MEM 0040h:007Eh
  54. ----------M00400006--------------------------
  55. MEM 0040h:0006h - BASE I/O ADDRESS OF FOURTH SERIAL I/O PORT
  56. Size:    WORD
  57. Note:    the BIOS sets this word to zero if is unable to find more than three
  58.       serial ports at the addresses it is programmed to check at boot
  59. SeeAlso: MEM 0040h:0000h,MEM 0040h:0002h,MEM 0040h:0004h,MEM 0040h:0008h
  60. SeeAlso: MEM 0040h:007Fh
  61. ----------M00400008--------------------------
  62. MEM 0040h:0008h - BASE I/O ADDRESS OF FIRST PARALLEL I/O PORT
  63. Size:    WORD
  64. Notes:    the BIOS POST routine fills in the parallel port address fields in
  65.       turn as it finds parallel ports.  All fields beyond the last one
  66.       for which a valid parallel port was found are set to zero.
  67.     the BIOS INT 17 handler uses these fields to address the parallel
  68.       ports
  69. SeeAlso: MEM 0040h:0000h,MEM 0040h:000Ah,MEM 0040h:000Ch
  70. ----------M0040000A--------------------------
  71. MEM 0040h:000Ah - BASE I/O ADDRESS OF SECOND PARALLEL I/O PORT
  72. Size:    WORD
  73. Note:    zero if fewer than two parallel ports installed
  74. SeeAlso: MEM 0040h:0002h,MEM 0040h:0008h,MEM 0040h:000Ch
  75. ----------M0040000C--------------------------
  76. MEM 0040h:000Ch - BASE I/O ADDRESS OF THIRD PARALLEL I/O PORT
  77. Size:    WORD
  78. Note:    zero if fewer than three parallel ports installed
  79. SeeAlso: MEM 0040h:0004h,MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh
  80. ----------M0040000E--------------------------
  81. MEM 0040h:000Eh - BASE I/O ADDRESS OF FOURTH PARALLEL I/O PORT (pre-PS/2)
  82. Size:    WORD
  83. Note:    zero if fewer than four parallel ports installed
  84. SeeAlso: MEM 0040h:0008h,MEM 0040h:000Ah,MEM 0040h:000Eh"BIOS DATA"
  85. ----------M0040000E--------------------------
  86. MEM 0040h:000Eh - SEGMENT OF EXTENDED BIOS DATA SEGMENT (PS/2, newer BIOSes)
  87. Size:    WORD
  88. SeeAlso: MEM 0040h:000Eh"PARALLEL"
  89.  
  90. Format of Extended BIOS Data Area (IBM):
  91. Offset    Size    Description    (Table M001)
  92.  00h    BYTE    length of EBDA in kilobytes
  93.  01h 15 BYTEs    reserved
  94.  17h    BYTE    number of entries in POST error log (0-5)
  95.  18h  5 WORDs    POST error log (each word is a POST error number)
  96.  22h    DWORD    Pointing Device Driver entry point
  97.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  98.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  99.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  100.  30h    DWORD    Vector for INT 07h stored here during 80387 interrupt
  101.  34h    DWORD    Vector for INT 01h stored here during INT 07h emulation
  102.  38h    BYTE    Scratchpad for 80287/80387 interrupt code
  103.  39h    WORD    Timer3: Watchdog timer initial count
  104.  3Bh    BYTE    ??? seen non-zero on Model 30
  105.  3Ch    BYTE    ???
  106.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0 (for older machines
  107.           which don't directly support the installed drive)
  108.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1 (for older machines
  109.           which don't directly support the installed drive)
  110.  5Dh-67h    ???
  111.  68h    BYTE    cache control
  112.         bits 7-2 unused (0)
  113.         bit 1: CPU cache failed test
  114.         bit 0: CPU cache disabled
  115.  69h-6Bh    ???
  116.  6Ch    BYTE    Fixed disk: (=FFh on ESDI systems)
  117.             bits 7-4: Channel number 00-0Fh
  118.             bits 3-0: DMA arbitration level 00-0Eh
  119.  6Dh    BYTE    ???
  120.  6Eh    WORD    current typematic setting (see INT 16/AH=03h)
  121.  70h    BYTE    number of attached hard drives
  122.  71h    BYTE    hard disk 16-bit DMA channel
  123.  72h    BYTE    interrupt status for hard disk controller (1Fh on timeout)
  124.  73h    BYTE    hard disk operation flags
  125.         bit 7: controller issued operation-complete INT 76h
  126.         bit 6: controller has been reset
  127.         bits 5-0: unused (0)
  128.  74h    DWORD    old INT 76h vector
  129.  78h    BYTE    hard disk DMA type
  130.         typically 44h for reads and 4Ch for writes
  131.  79h    BYTE    status of last hard disk operation
  132.  7Ah    BYTE    hard disk timeout counter
  133.  7Bh-7Dh
  134.  7Eh  8 WORDs    storage for hard disk controller status
  135.  8Eh-E6h
  136.  E7h    BYTE    floppy drive type
  137.         bit 7: drive(s) present
  138.         bits 6-2: unused (0)
  139.         bit 1: drive 1 is 5.25" instead of 3.5"
  140.         bit 0: drive 0 is 5.25"
  141.  E8h  4 BYTEs    ???
  142.  ECh    BYTE    hard disk parameters flag
  143.         bit 7: parameters loaded into EBDA
  144.         bits 6-0: unused (0)
  145.  EDh    BYTE    ???
  146.  EEh    BYTE    CPU family ID (03h = 386, 04h = 486, etc.) (see INT 15/AH=C9h)
  147.  EFh    BYTE    CPU stepping (see INT 15/AH=C9h)
  148.  F0h 39 BYTEs    ???
  149. 117h    WORD    keyboard ID (see INT 16/AH=0Ah)
  150.         (most commonly 41ABh)
  151. 119h    BYTE    ???
  152. 11Ah    BYTE    non-BIOS INT 18h flag
  153.         bits 7-1: unused (0)
  154.         bit 0: set by BIOS before calling user INT 18h at offset 11Dh
  155. 11Bh  2 BYTE    ???
  156. 11Dh    DWORD    user INT 18h vector if BIOS has re-hooked INT 18h
  157. 121h and up:    ??? seen non-zero on Model 60
  158. 3F0h    BYTE    Fixed disk buffer (???)
  159. SeeAlso: #M004
  160.  
  161. Bitfields for Pointing Device Flags 1:
  162. Bit(s)    Description    (Table M002)
  163.  7    command in progress
  164.  6    resend byte (FAh) received
  165.  5    acknowledge byte (FEh) received
  166.  4    error byte (FCh) received
  167.  3    unexpected value received
  168.  2-0    index count for auxiliary device data at 28h
  169. SeeAlso: #M001,#M003
  170.  
  171. Bitfields for Pointing Device Flags 2:
  172. Bit(s)    Description    (Table M003)
  173.  7    device driver far call flag
  174.  6-3    reserved
  175.  2-0    package size (number of bytes received) - 1
  176. SeeAlso: #M001,#M002
  177.  
  178. Format of Extended BIOS Data Area (AMI v1.00.12.AX1T):
  179. Offset    Size    Description    (Table M004)
  180.  00h    BYTE    length of XBDA in kilobytes
  181.  01h 15 BYTEs    reserved
  182.  17h    BYTE    number of entries in POST error log (0-10)
  183.  18h 10 BYTEs    unused???
  184.  22h    DWORD    Pointing Device Driver entry point
  185.  26h    BYTE    Pointing Device Flags 1 (see #M002)
  186.  27h    BYTE    Pointing Device Flags 2 (see #M003)
  187.  28h  8 BYTEs    Pointing Device Auxiliary Device Data
  188.  30h 13 BYTEs    ???
  189.  3Dh 16 BYTEs    Fixed Disk parameter table for drive 0
  190.  4Dh 16 BYTEs    Fixed Disk parameter table for drive 1
  191.  5Dh 16 BYTEs    parameter table for drive 2???
  192.  6Dh 16 BYTEs    parameter table for drive 3???
  193.  80h 56 BYTEs?    IDE drive 0 manufacturer/model string
  194.  B8h 41 BYTEs    AMIBIOS copyright string
  195.  E1h        unused???
  196. 102h    WORD    ??? flags
  197.         bit 15: ???
  198. 108h    WORD    offset of IntelIDECfgTbl (IDE configuration settings) within
  199.           segment F000h
  200. 10Ah  2 BYTEs    ???
  201. 10Ch    DWORD    pointer to routine to call for language-specific error messages
  202. 110h    WORD    offset in segment F000h of end of currently-loaded optional
  203.           BIOS subsystems (language, APM, etc.)
  204. 112h    WORD    offset in segment F000h of end of area avaiable for loading
  205.           optional BIOS subsystems
  206. 1F0h    BYTE    APM status flags
  207. 1F1h  8 BYTEs    APM power-state data for device classes 01h-06h
  208.         bits 0-3: current power state for devices 00h-03h in class
  209.         bits 7-4: current engaged state for devices 00h-03h in class
  210. 1F9h  4 BYTEs    APM power-state data for device classes 01h-08h (four devices
  211.           per class)
  212. 1FDh  3 BYTEs    ???
  213. 200h 10 WORDs    POST error log
  214. 214h    ???
  215. SeeAlso: #M001
  216. ----------M00400010--------------------------
  217. MEM 0040h:0010h - INSTALLED HARDWARE
  218. Size:    WORD
  219.  
  220. Bitfields for BIOS-detected installed hardware:
  221. Bit(s)    Description    (Table M005)
  222.  15-14    number of parallel devices
  223.     00 or 11 sometimes used to indicate four LPT ports
  224.  13    (Convertible, PS/2-55LS) internal modem
  225.  12    game port installed
  226.  11-9    number of serial devices
  227.     000 or 111 sometimes used to indicate eight COM ports
  228.  8    reserved
  229.  7-6    number of floppy disk drives (minus 1)
  230.  5-4    initial video mode
  231.     00 EGA,VGA,PGA, or other with on-board video BIOS
  232.     01 40x25 CGA color
  233.     10 80x25 CGA color
  234.     11 80x25 mono text
  235.  3-2    (PC only) RAM on motherboard
  236.     00 = 16K, 01 = 32K, 10 = 48K, 11 = 64K
  237.  2    (pre-PS/2 except PC) reserved
  238.     (PS/2, newer BIOSes) pointing device installed
  239.  1    math coprocessor installed
  240.  0    floppy disk drives are installed
  241.     booted from floppy
  242. ----------M00400012--------------------------
  243. MEM 0040h:0012h - Convertible - POST STATUS
  244. Size:    BYTE
  245. ----------M00400012--------------------------
  246. MEM 0040h:0012h U - AT - MANUFACTURING TEST INITIALIZATION FLAGS
  247. Size:    BYTE
  248.  
  249. Bitfields for AT manufacturing test initialization flags:
  250. Bit(s)    Description    (Table M006)
  251.  0    start in manufacturing test mode rather than normal operation
  252.  1-7    unused
  253. ----------M00400012--------------------------
  254. MEM 0040h:0012h - MCA - MANUFACTURING TEST
  255. Size:    BYTE
  256.  
  257. Bitfields for MCA manufacturing test flags :
  258. Bit(s)    Description    (Table M007)
  259.  7    POST flag, ???
  260.  6-5    unused
  261.  4    POST flag, slot 4 has adapter identifier EDAFh
  262.  3    POST flag, 80x25 color video
  263.  2    POST flag, ???
  264.  1    unused
  265.  0    manufacturing test mode rather than normal operation
  266. ----------M00400012--------------------------
  267. MEM 0040h:0012h - PS/2 Model 25 - POST SYSTEM FLAG
  268. Size:    BYTE
  269.  
  270. Bitfields for PS/2 Model 25 POST sytem flag :
  271. Bit(s)    Description    (Table M008)
  272.  0    optional memory failed; memory remapped
  273.  1    real-time clock installed
  274. ----------M00400013--------------------------
  275. MEM 0040h:0013h - BASE MEMORY SIZE IN KBYTES
  276. Size:    WORD
  277. ----------M00400015--------------------------
  278. MEM 0040h:0015h - PC, XT - ADAPTER MEMORY SIZE IN KBYTES
  279. Size:    WORD
  280. ----------M00400015--------------------------
  281. MEM 0040h:0015h U - AT - MANUFACTURING TEST SCRATCH PAD
  282. Size:    BYTE
  283. ----------M00400015--------------------------
  284. MEM 0040h:0015h - Compaq Deskpro 386 - PREVIOUS SCAN CODE
  285. Size:    BYTE
  286. ----------M00400016--------------------------
  287. MEM 0040h:0016h U - AT - MANUFACTURING TEST SCRATCH PAD
  288. Size:    BYTE
  289. ----------M00400016--------------------------
  290. MEM 0040h:0016h U - PS/2 Model 30 - BIOS CONTROL FLAGS
  291. Size:    BYTE
  292. ----------M00400016--------------------------
  293. MEM 0040h:0016h - Compaq Deskpro 386 - KEYCLICK VOLUME
  294. Size:    BYTE
  295. Range:    00h-7Fh
  296. --------K-M00400017--------------------------
  297. MEM 0040h:0017h - KEYBOARD - STATUS FLAGS 1
  298. Size:    BYTE
  299. SeeAlso: MEM 0040h:0018h,INT 16/AH=02h,MEM 0040h:0096h
  300.  
  301. Bitfields for keyboard status flags 1:
  302. Bit(s)    Description    (Table M009)
  303.  7    INSert active
  304.  6    Caps Lock active
  305.  5    Num Lock active
  306.  4    Scroll Lock active
  307.  3    either Alt pressed
  308.  2    either Ctrl pressed
  309.  1    Left Shift pressed
  310.  0    Right Shift pressed
  311. SeeAlso: #M010,#0486
  312. --------K-M00400018--------------------------
  313. MEM 0040h:0018h - KEYBOARD - STATUS FLAGS 2
  314. Size:    BYTE
  315. SeeAlso: MEM 0040h:0017h,INT 16/AH=12h
  316.  
  317. Bitfields for keyboard status flags 2 :
  318. Bit(s)    Description    (Table M010)
  319.  7    INSert pressed
  320.  6    Caps Lock pressed
  321.  5    Num Lock pressed
  322.  4    Scroll Lock pressed
  323.  3    Pause state active
  324.  2    Sys Req pressed
  325.  1    Left Alt pressed
  326.  0    Left Ctrl pressed
  327. SeeAlso: #M009,#0487
  328. --------K-M00400019--------------------------
  329. MEM 0040h:0019h - KEYBOARD - ALT-nnn KEYPAD WORKSPACE
  330. Size:    BYTE
  331. Desc:    holds the current value of an Alt-NNN keypad sequence; when Alt is
  332.       released and this byte is non-zero, the appropriate character is
  333.       placed in the keyboard buffer
  334. SeeAlso: INT 16/AH=00h
  335. --------K-M0040001A--------------------------
  336. MEM 0040h:001Ah - KEYBOARD - POINTER TO NEXT CHARACTER IN KEYBOARD BUFFER
  337. Size:    WORD
  338. SeeAlso: MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  339. --------K-M0040001C--------------------------
  340. MEM 0040h:001Ch - KEYBOARD - POINTER TO FIRST FREE SLOT IN KEYBOARD BUFFER
  341. Size:    WORD
  342. SeeAlso: MEM 0040h:001Ah,MEM 0040h:0080h,MEM 0040h:0082h,INT 16/AH=00h
  343. --------K-M0040001E--------------------------
  344. MEM 0040h:001Eh - KEYBOARD - DEFAULT KEYBOARD CIRCULAR BUFFER
  345. Size:    16 WORDs
  346. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Ch,MEM 0040h:0080h,MEM 0040h:0082h
  347. SeeAlso: INT 16/AH=00h
  348. ----------M0040003E--------------------------
  349. MEM 0040h:003Eh - DISKETTE - RECALIBRATE STATUS
  350. Size:    BYTE
  351. SeeAlso: MEM 0040h:003Fh,MEM 0040h:0040h
  352.  
  353. Bitfields for diskette recalibrate status:
  354. Bit(s)    Description    (Table M011)
  355.  7    diskette hardware interrupt occurred
  356.  6-4    reserved
  357.  3    recalibrate diskette 3 (PC,XT only)
  358.  2    recalibrate diskette 2 (PC,XT only)
  359.  1    recalibrate diskette 1
  360.  0    recalibrate diskette 0
  361. ----------M0040003F--------------------------
  362. MEM 0040h:003Fh - DISKETTE - MOTOR STATUS
  363. Size:    BYTE
  364. SeeAlso: MEM 0040h:003Eh,MEM 0040h:0040h
  365.  
  366. Bitfields for diskette motor status:
  367. Bit(s)    Description    (Table M012)
  368.  7    current operation is write or format, rather than read or verify
  369.  6    reserved (DMA enabled on 82077)
  370.  5-4    diskette drive number selected (0-3)
  371.  3    diskette 3 motor on (PC,XT only)
  372.  2    diskette 2 motor on (PC,XT only)
  373.  1    diskette 1 motor on
  374.  0    diskette 0 motor on
  375. ----------M00400040--------------------------
  376. MEM 0040h:0040h - DISKETTE - MOTOR TURN-OFF TIMEOUT COUNT
  377. Size:    BYTE
  378. Desc:    number of clock ticks until diskette motor is turned off
  379. Note:    the typical implementation of the timeout is to have the INT 08 
  380.       handler decrement this byte on every clock tick, and force the
  381.       diskette motor off if the result is equal to zero
  382. SeeAlso: MEM 0040h:003Eh,MEM 0040h:003Fh,MEM 0040h:0041h
  383. ----------M00400041--------------------------
  384. MEM 0040h:0041h - DISKETTE - LAST OPERATION STATUS
  385. Size:    BYTE
  386. SeeAlso: MEM 0040h:003Eh
  387.  
  388. Bitfields for diskette last operation status:
  389. Bit(s)    Description    (Table M013)
  390.  7    drive not ready
  391.  6    seek error
  392.  5    general controller failure
  393.  4-0    error reason
  394.     00h no error
  395.     01h invalid request/parameter
  396.     02h address mark not found
  397.     03h write-protect error
  398.     04h sector not found
  399.     06h diskette change line active
  400.     08h DMA overrun
  401.     09h DMA across 64k boundary
  402.     0Ch media type unknown
  403.     10h CRC error on read
  404. Note:    the following values for this byte differ somewhat from the
  405.       bitfield definition above:
  406.         30h drive does not support media sense
  407.         31h no media in drive
  408.         32h drive does not support media type
  409.         AAh diskette drive not ready
  410. ----------M00400042--------------------------
  411. MEM 0040h:0042h - DISK - FLOPPY/HARD DRIVE STATUS/COMMAND BYTES
  412. Size:    7 BYTEs
  413.  
  414.     42h BYTE    XT: command byte to hard disk controller
  415.         AT: write precompensation cylinder number / 4
  416.     43h    BYTE    XT: bit 5 = drive number, bits 3-0=head number
  417.         AT: sector count
  418.     44h BYTE    XT: bits 6,7 = high bits of track, bits 5-0 = start sector-1
  419.         AT: starting sector
  420.     45h BYTE    low byte of track number
  421.     46h BYTE    XT: sector count
  422.         AT: high bits of track number
  423.     47h BYTE    XT: controlbyte from HD parameters (step rate,...)
  424.         AT: 101DHHHH, D=drive number, HHHH=head number
  425.     48h BYTE    XT: INT 13h subfunction number
  426.         AT: comand byte to hard disk controller
  427. ----------M00400042--------------------------
  428. MEM 0040h:0042h - DISK CONTROLLER STATUS REGISTER 0
  429. Size:    BYTE
  430.  
  431. Bitfields for diskette controller status register 0:
  432. Bit(s)    Description    (Table M014)
  433.  7-6    interrupt code
  434.     00 normal completion
  435.     01 abnormal termination during execution
  436.     10 invalid command
  437.     11 abnormal termination: ready line on/diskette change
  438.  5    requested seek complete
  439.  4    drive fault
  440.  3    drive not ready
  441.  2    head state at time of interrupt
  442.  1-0    selected drive (drives 2&3 on PC,XT only)
  443. ----------M00400043--------------------------
  444. MEM 0040h:0043h - DISK CONTROLLER STATUS REGISTER 1
  445. Size:    BYTE
  446.  
  447. Bitfields for diskette controller status register 0:
  448. Bit(s)    Description    (Table M015)
  449.  7    attempted access beyon last cylinder
  450.  6    unused
  451.  5    CRC error on read
  452.  4    DMA overrun
  453.  3    unused
  454.  2    data error
  455.  1    disk write protected
  456.  0    missing address mark
  457. ----------M00400044--------------------------
  458. MEM 0040h:0044h - DISK CONTROLLER STATUS REGISTER 2
  459. Size:    BYTE
  460.  
  461. Bitfields for diskette controller status register 0:
  462. Bit(s)    Description    (Table M016)
  463.  7    unused
  464.  6    found deleted data address mark
  465.  5    CRC error in data field
  466.  4    wrong cylinder number read
  467.  3    verify equal
  468.  2    can't find sector matching verify condition
  469.  1    bad cylinder
  470.  0    unable to find address mark
  471. ----------M00400049--------------------------
  472. MEM 0040h:0049h - VIDEO - CURRENT VIDEO MODE
  473. Size:    BYTE
  474. SeeAlso: MEM 0040h:004Ah,INT 10/AH=00h
  475. ----------M0040004A--------------------------
  476. MEM 0040h:004Ah - VIDEO - COLUMNS ON SCREEN
  477. Size:    WORD
  478. SeeAlso: MEM 0040h:0049h,MEM 0040h:004Ch,MEM 0040h:004Eh
  479. ----------M0040004C--------------------------
  480. MEM 0040h:004Ch - VIDEO - PAGE (REGEN BUFFER) SIZE IN BYTES
  481. Size:    WORD
  482. SeeAlso: MEM 0040h:004Ah,MEM 0040h:004Eh,MEM 0040h:0050h
  483. ----------M0040004E--------------------------
  484. MEM 0040h:004Eh - VIDEO - CURRENT PAGE START ADDRESS IN REGEN BUFFER
  485. Size:    WORD
  486. SeeAlso: MEM 0040h:004Ch,MEM 0040h:0050h,MEM 0040h:0062h
  487. ----------M00400050--------------------------
  488. MEM 0040h:0050h - VIDEO - CURSOR POSITIONS
  489. Size:    8 WORDs
  490. Desc:    contains row and column position for the cursors on each of eight
  491.       video pages
  492. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0060h
  493. ----------M00400060--------------------------
  494. MEM 0040h:0060h - VIDEO - CURSOR TYPE
  495. Size:    WORD    (big-endian)
  496. Desc:    contains cursor start scan line and cursor end scan line
  497. SeeAlso: MEM 0040h:0050h,MEM 0040h:0062h,INT 10/AH=03h
  498. ----------M00400062--------------------------
  499. MEM 0040h:0062h - VIDEO - CURRENT PAGE NUMBER
  500. Size:    BYTE
  501. SeeAlso: MEM 0040h:004Eh,MEM 0040h:0063h
  502. ----------M00400063--------------------------
  503. MEM 0040h:0063h - VIDEO - CRT CONTROLLER BASE I/O PORT ADDRESS
  504. Size:    WORD
  505. Note:    normally 03B4h for mono and 03D4h for color video boards
  506. SeeAlso: MEM 0040h:0065h,MEM 0040h:0066h
  507. ----------M00400065--------------------------
  508. MEM 0040h:0065h - VIDEO - CURRENT MODE SELECT REGISTER
  509. Size:    BYTE
  510. Desc:    contains last value written to I/O port 03B8h / 03D8h
  511. SeeAlso: MEM 0040h:0063h,MEM 0040h:0066h
  512.  
  513. Bitfields for current video mode select register:
  514. Bit(s)    Description    (Table M017)
  515.  7-6    unused
  516.  5    attribute bit 7 controls blinking instead of background
  517.  4    mode 6 graphics in monochrome
  518.  3    video signal enabled
  519.  2    monochrome
  520.  1    graphics
  521.  0    80x25 text
  522. ----------M00400066--------------------------
  523. MEM 0040h:0066h - VIDEO - CURRENT SETTING OF CGA PALETTE REGISTER
  524. Size:    BYTE
  525. Desc:    contains the last value written to I/O port 03D9h
  526. SeeAlso: MEM 0040h:0063h,MEM 0040h:0065h,INT 10h/AH=0Bh/BH=01h
  527.  
  528. Bitfields for CGA palette register:
  529. Bit(s)    Description    (Table M018)
  530.  7-6    unused
  531.  5    palette (0/1)
  532.  4    intense background colors in text mode
  533.  3    intense border color (40x25) / background color (mode 5)
  534.  2    red
  535.  1    green
  536.  0    blue
  537. ----------M00400067--------------------------
  538. MEM 0040h:0067h - PC only - CASSETTE TIME COUNT
  539. Size:    WORD
  540. SeeAlso: INT 15/AH=00h
  541. ----------M00400067--------------------------
  542. MEM 0040h:0067h - RESET RESTART ADDRESS
  543. Size:    DWORD
  544. Desc:    this address stores the address at which to resume execution after a
  545.       CPU reset (or jump to F000h:FFF0h) when certain magic values are
  546.       stored at 0040h:0072h or in CMOS RAM location 0Fh
  547. SeeAlso: MEM 0040h:0072h,MEM F000h:FFF0h,CMOS 0Fh,INT 19
  548. ----------M00400069--------------------------
  549. MEM 0040h:0069h    - CASSETTE (PC only) - CASSETTE CRC REGISTER
  550. Size:    WORD
  551. SeeAlso: MEM 0040h:006Bh"CASSETTE"
  552. ----------M00400069--------------------------
  553. MEM 0040h:0069h - V20-XT-BIOS - KEY REPEAT
  554. Size:    BYTE
  555.  
  556. Bitfields for V20-XT-BIOS key repeat flags:
  557. Bit(s)    Description    (Table M019)
  558.  7    key repeat disabled
  559.  6    Ctrl-Alt pressed instead of just Alt
  560. ----------M0040006B--------------------------
  561. MEM 0040h:006Bh - CASSETTE (PC only) - LAST VALUE READ FROM CASSETTE
  562. Size:    BYTE
  563. SeeAlso: MEM 0040h:0069h"CASSETTE"
  564. ----------M0040006B--------------------------
  565. MEM 0040h:006Bh - POST LAST UNEXPECTED INTERRUPT (XT and later)
  566. Size:    BYTE
  567. Desc:    this is a bitmask of IRQs which have occurred while the corresponding
  568.       interrupt vector points at the default system BIOS handler
  569.       (bit 0 = IRQ0 to bit 7 = IRQ7)
  570. ----------M0040006C--------------------------
  571. MEM 0040h:006Ch - TIMER TICKS SINCE MIDNIGHT
  572. Size:    DWORD
  573. SeeAlso: MEM 0040h:0070h,INT 1A/AH=00h
  574. ----------M00400070--------------------------
  575. MEM 0040h:0070h - TIMER OVERFLOW
  576. Size:    BYTE
  577. Desc:    non-zero if timer has counted past midnight since last call to
  578.       INT 1A/AH=00h
  579. Note:    the original IBM BIOS, and thus most other BIOSes, sets this byte to
  580.       01h at midnight; a few (such as the Eagle PC-2) increment it each
  581.       time midnight is passed.  The former behavior results in lost days
  582.       if multiple midnights pass between "get-time" calls while the machine
  583.       is powered up.
  584. SeeAlso: MEM 0040h:006Ch
  585. ----------M00400071--------------------------
  586. MEM 0040h:0071h - Ctrl-Break FLAG
  587. Size:    BYTE
  588. Desc:    bit 7 is set when Ctrl-Break has been pressed
  589. ----------M00400072--------------------------
  590. MEM 0040h:0072h - POST RESET FLAG
  591. Size:    WORD
  592. Desc:    specify the action the BIOS should take at the beginning of the
  593.       power-on self-test when the machine is reset
  594.  
  595. (Table M020)
  596. Values for POST reset flag:
  597.  0000h    cold boot
  598.  0064h    Burn-in mode
  599.  1234h    to bypass memory test (warm boot)
  600.  4321h    [PS/2 except Mod 25,30] to preserve memory
  601.  5678h    [Conv] system suspended
  602.  9ABCh    [Conv] manufacturing test mode
  603.  ABCDh    [Conv] POST loop mode
  604. ----------M00400074--------------------------
  605. MEM 0040h:0074h - FIXED DISK LAST OPERATION STATUS (except ESDI drives)
  606. Size:    BYTE
  607. SeeAlso: INT 13/AH=01h
  608.  
  609. (Table M021)
  610. Values for fixed disk last operation status:
  611.  00h    no error
  612.  01h    invalid function request
  613.  02h    address mark not found
  614.  03h    write protect error
  615.  04h    sector not found
  616.  05h    reset failed
  617.  06h    diskette removed
  618.  07h    drive parameter activity failed
  619.  08h    DMA overrun
  620.  09h    DMA data boundary error
  621.  0Ah    bad sector flag detected
  622.  0Bh    bad track detected
  623.  0Ch    requested diskette media type not found
  624.     (PS/2 or extended BIOS only) unsupported track
  625.  0Dh    invalid number of sectors for Format
  626.  0Eh    control data address mark detected
  627.  0Fh    DMA arbitration level out of range
  628.  10h    uncorrectable ECC or CRC error
  629.  11h    ECC corrected data error
  630.  20h    general controller failed
  631.  40h    seek failed
  632.  80h    time out
  633.  AAh    drive not ready
  634.  BBh    undefined error
  635.  CCh    write fault on selected drive
  636.  E0h    status error/error register is zero
  637.  FFh    sense failed
  638. ----------M00400074--------------------------
  639. MEM 0040h:0074h - WD1002-27X SuperBIOS - TOTAL DRIVES, FIRST CONTROLLER ONLY
  640. Size:    BYTE
  641. SeeAlso: MEM 0040h:0075h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  642. ----------M00400075--------------------------
  643. MEM 0040h:0075h - FIXED DISK - NUMBER OF FIXED DISK DRIVES
  644. Size:    BYTE
  645. SeeAlso: MEM 0040h:0076h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  646. ----------M00400075--------------------------
  647. MEM 0040h:0075h - WD1002-27X SuperBIOS - TOTAL FIXED DRIVES, BOTH CONTROLLERS
  648. Size:    BYTE
  649. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0076h"SuperBIOS"
  650. ----------M00400076--------------------------
  651. MEM 0040h:0076h - FIXED DISK - CONTROL BYTE    {IBM document only for XT}
  652. Size:    BYTE
  653. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0077h"FIXED DISK"
  654. ----------M00400076--------------------------
  655. MEM 0040h:0076h - XT: hard disk controller's I/O address (Western Digital)
  656. Size:    BYTE
  657. ----------M00400076--------------------------
  658. MEM 0040h:0076h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  659. Size:    BYTE
  660. SeeAlso: MEM 0040h:0074h"SuperBIOS",MEM 0040h:0075h"SuperBIOS"
  661. SeeAlso: MEM 0040h:0077h"SuperBIOS"
  662. ----------M00400077--------------------------
  663. MEM 0040h:0077h    - FIXED DISK - I/O port offset {IBM document only for XT}
  664. Size:    BYTE
  665. SeeAlso: MEM 0040h:0075h"FIXED DISK",MEM 0040h:0076h"FIXED DISK"
  666. ----------M00400077--------------------------
  667. MEM 0040h:0077h - WD1002-27X SuperBIOS - USED IN TRACK RECALCULATION
  668. Size:    BYTE
  669. SeeAlso: MEM 0040h:0076h"SuperBIOS"
  670. ----------M00400078--------------------------
  671. MEM 0040h:0078h - PARALLEL DEVICE 1 TIME-OUT COUNTER
  672. Size:    BYTE
  673. SeeAlso: MEM 0040h:0079h,MEM 0040h:007Ah
  674. ----------M00400079--------------------------
  675. MEM 0040h:0079h - PARALLEL DEVICE 2 TIME-OUT COUNTER
  676. Size:    BYTE
  677. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah
  678. ----------M0040007A--------------------------
  679. MEM 0040h:007Ah - PARALLEL DEVICE 3 TIME-OUT COUNTER
  680. Size:    BYTE
  681. SeeAlso: MEM 0040h:0078h,MEM 0040h:0079h,MEM 0040h:007Bh"PARALLEL"
  682. ----------M0040007B--------------------------
  683. MEM 0040h:007Bh - PARALLEL DEVICE 4 TIME-OUT COUNTER (pre-PS, PS Models 25,30)
  684. Size:    BYTE
  685. SeeAlso: MEM 0040h:0078h,MEM 0040h:007Ah,MEM 0040h:007Bh"INT 4Bh"
  686. ----------M0040007B--------------------------
  687. MEM 0040h:007Bh - INT 4Bh FLAGS (PS2 and newer)
  688. Size:    BYTE
  689.  
  690. Bitfields for INT 4Bh flags:
  691. Bit(s)    Description    (Table M022)
  692.  7-6    reserved
  693.  5    set if Virtual DMA Spec supported [PS] (see INT 4B)
  694.  4    reserved
  695.  3    set if INT 4Bh intercepted and must be chained
  696.  2    reserved
  697.  1    set if Generic SCSI CBIOS services available on INT 4Bh
  698.  0    reserved
  699. ----------M0040007C--------------------------
  700. MEM 0040h:007Ch - SERIAL DEVICE 1 TIMEOUT COUNTER
  701. Size:    BYTE
  702. SeeAlso: MEM 0040h:0000h,MEM 0040h:007Dh,MEM 0040h:007Eh,MEM 0040h:007Fh
  703. ----------M0040007D--------------------------
  704. MEM 0040h:007Dh - SERIAL DEVICE 2 TIMEOUT COUNTER
  705. Size:    BYTE
  706. SeeAlso: MEM 0040h:0002h,MEM 0040h:007Ch,MEM 0040h:007Eh,MEM 0040h:007Fh
  707. ----------M0040007E--------------------------
  708. MEM 0040h:007Eh - SERIAL DEVICE 3 TIMEOUT COUNTER
  709. Size:    BYTE
  710. SeeAlso: MEM 0040h:0004h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Fh
  711. ----------M0040007F--------------------------
  712. MEM 0040h:007Fh - SERIAL DEVICE 4 TIMEOUT COUNTER
  713. Size:    BYTE
  714. SeeAlso: MEM 0040h:0006h,MEM 0040h:007Ch,MEM 0040h:007Dh,MEM 0040h:007Eh
  715. ----------M00400080--------------------------
  716. MEM 0040h:0080h - KEYBOARD BUFFER START OFFSET FROM SEGMENT 40h (normally 1Eh)
  717. Size:    WORD
  718. SeeAlso: MEM 0040h:001Ah,MEM 0040h:001Eh,MEM 0040h:0082h
  719. ----------M00400082--------------------------
  720. MEM 0040h:0082h - KEYBOARD BUFFER END+1 OFFSET FROM SEGMENT 40h (normally 3Eh)
  721. Size:    WORD
  722. Note:    XT BIOS dated 11/08/82 ends here
  723. SeeAlso: MEM 0040h:001Ch,MEM 0040h:003Eh,MEM 0040h:0080h
  724. ----------M00400084--------------------------
  725. MEM 0040h:0084h - VIDEO (EGA/MCGA/VGA) - ROWS ON SCREEN MINUS ONE
  726. Size:    BYTE
  727. ----------M00400085--------------------------
  728. MEM 0040h:0085h - VIDEO (EGA/MCGA/VGA) - CHARACTER HEIGHT IN SCAN-LINES
  729. Size:    WORD
  730. ----------M00400087--------------------------
  731. MEM 0040h:0087h - VIDEO (EGA/VGA) CONTROL: [MCGA: =00h]
  732. Size:    BYTE
  733.  
  734. Bitfields for EGA/VGA Video control flags:
  735. Bit(s)    Description    (Table M023)
  736.  7    do not to clear RAM on mode set (see INT 10h, AH=00h)
  737.  6-5    RAM on adapter = (this field + 1) * 64K
  738.  4    reserved
  739.  3    EGA/VGA video system INactive
  740.  2    wait for display enable
  741.  1    mono monitor
  742.  0    alphanumeric cursor emulation DISabled
  743.     When enabled, text mode cursor size (INT 10,AH=01h) settings looking
  744.      like CGA ones are translated to equivalent EGA/VGA ones.
  745. ----------M00400088--------------------------
  746. MEM 0040h:0088h - VIDEO (EGA/VGA) SWITCHES: [MCGA: reserved]
  747. Size:    BYTE
  748. SeeAlso: MEM 0040h:0087h,MEM 0040h:0088h
  749.  
  750. Bitfields for EGA/VGA Video switches:
  751. Bit(s)    Description    (Table M024)
  752.  7-4    power-on state of feature connector bits 3-0
  753.  3-0    configuration switches 4-1 (=0 on, =1 off) (see #M025)
  754. Note:    when bit 4 of 0040h:0089h is 0, VGA emulates 350-line EGA if this
  755.       byte is x3h or x9h, otherwise emulates 200-line CGA in 400-line
  756.       double scan. VGA resets this byte to x9h after the mode set.
  757.     See also note for 0040h:0089h.
  758.  
  759. (Table M025)
  760. Values for EGA/VGA configuration switches:
  761.  00h Pri MDA,                Sec EGA+old color display 40 x 25
  762.  01h Pri MDA,                Sec EGA+old color display 80 x 25
  763.  02h Pri MDA,                Sec EGA+ECD normal mode (CGA emul)
  764.  03h Pri MDA,                Sec EGA+ECD enhanced mode
  765.  04h Pri CGA 40 x 25,            Sec EGA mono display
  766.  05h Pri CGA 80 x 25,            Sec EGA mono display
  767.  06h Pri EGA+old color display 40 x 25, Sec MDA
  768.  07h Pri EGA+old color display 80 x 25, Sec MDA
  769.  08h Pri EGA+ECD normal mode (CGA emul), Sec MDA
  770.  09h Pri EGA+ECD enhanced mode,        Sec MDA
  771.  0Ah Pri EGA mono display,        Sec CGA 40 x 25
  772.  0Bh Pri EGA mono display,        Sec CGA 80 x 25
  773. SeeAlso: #M024
  774. ----------M00400089--------------------------
  775. MEM 0040h:0089h U - VIDEO (MCGA/VGA) - MODE-SET OPTION CONTROL
  776. Size:    BYTE
  777.  
  778. Bitfields for Video mode-set option control:
  779. Bit(s)    Description    (Table M026)
  780.  7,4    requested scan lines
  781.     0 0  350-line mode requested
  782.     0 1  400-line mode at next mode set
  783.     1 0  200-line mode requested
  784.     1 1  reserved
  785.     Note:    Apparently VGA BIOS mode set disregards bit 7 and uses
  786.           byte 40h:88h to determine 200/350 selection when bit 4
  787.           is zero. Presumably bit 7 is a convenience for other
  788.           purposes. Bit 7 is reset to zero after the mode set.
  789.  6    display switching enabled
  790.  5    reserved
  791.  4    if set:      use 400-line mode at next mode set
  792.     if clear: [VGA] emulate EGA at next mode set
  793.         [MCGA] emulate CGA, digital monitor, 200 lines, 8x8 text
  794.     Note: this bit is set by the video mode set on VGA, unchanged on MCGA
  795.  3    default palette loading DISabled at mode set
  796.  2    mono display
  797.  1    gray scale summing enabled
  798.  0    [VGA] =1 if VGA active, =0 if not
  799.     [MCGA] reserved, zero
  800. Note:    the Tseng ET4000 BIOS v3.00 uses bits 6-4 of 88h and bits 6-5 of 89h
  801.       to specify graphics-mode refresh rates as follows
  802.         88h/6        640x480:  1 for 72Hz,0 for 60Hz
  803.         88h/5+89h/6    800x600:  00  60Hz
  804.                       01  56Hz
  805.                       11  72Hz
  806.         88h/4+89h/5    1024x768: 00  interlaced
  807.                       01  60Hz
  808.                       10  72Hz???
  809.                       11  70Hz
  810. ----------M0040008A--------------------------
  811. MEM 0040h:008Ah U - VIDEO (MCGA/VGA) - INDEX INTO DISPLAY COMBINATION CODE TBL
  812. Size:    BYTE
  813. ----------M0040008B--------------------------
  814. MEM 0040h:008Bh - PC, PCjr, PC/XT 11/8/82, Convertible - RESERVED
  815. Size:    11 BYTEs
  816. ----------M0040008B--------------------------
  817. MEM 0040h:008Bh - DISKETTE MEDIA CONTROL
  818. Size:    BYTE
  819.  
  820. Bitfields for diskette media control:
  821. Bit(s)    Description    (Table M027)
  822.  7-6    last data rate set by controller
  823.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  824.  5-4    last diskette drive step rate selected
  825.     00=0Ch, 01=0Dh, 10=0Eh, 11=0Ah
  826.  3-2    {data rate at start of operation}
  827.  1-0    reserved
  828. Note:    EHD BIOS sets this byte to 01h and never reads it back
  829. ----------M0040008C--------------------------
  830. MEM 0040h:008Ch - FIXED DISK - CONTROLLER STATUS [not XT]
  831. Size:    BYTE
  832. SeeAlso: MEM 0040h:008Dh,MEM 0040h:008Eh
  833. ----------M0040008D--------------------------
  834. MEM 0040h:008Dh - FIXED DISK - CONTROLLER ERROR STATUS [not XT]
  835. Size:    BYTE
  836. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Eh
  837. ----------M0040008E--------------------------
  838. MEM 0040h:008Eh - FIXED DISK - INTERRUPT CONTROL [not XT]
  839. Size:    BYTE
  840. Note:    cleared to 00h at start of disk operation, set to FFh by IRQ14
  841.       handler when hard disk controller completes command
  842. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Fh
  843. ----------M0040008F--------------------------
  844. MEM 0040h:008Fh U - DISKETTE CONTROLLER INFORMATION [not XT]
  845. Size:    BYTE
  846. SeeAlso: MEM 0040h:008Ch,MEM 0040h:008Dh,MEM 0040h:008Eh
  847.  
  848. Bitfields for diskette controller information:
  849. Bit(s)    Description    (Table M028)
  850.  7    reserved
  851.  6    =1 drive 1 determined
  852.  5    =1 drive 1 is multi-rate, valid if drive determined
  853.  4    =1 drive 1 supports 80 tracks, always valid
  854.  3    reserved
  855.  2    =1 drive 0 determined
  856.  1    =1 drive 0 is multi-rate, valid if drive determined
  857.  0    =1 drive 0 supports 80 tracks, always valid
  858. Note:    EHD BIOS sets this byte to 01h and never alters it again
  859. ----------M00400090--------------------------
  860. MEM 0040h:0090h - DISKETTE DRIVE 0 MEDIA STATE
  861. Size:    BYTE
  862. SeeAlso: MEM 0040h:0091h
  863.  
  864. Bitfields for diskette drive media state:
  865. Bit(s)    Description    (Table M029)
  866.  7-6    data rate
  867.     00=500kbps, 01=300kbps, 10=250kbps, 11=1Mbps
  868.  5    double stepping required (e.g. 360kB in 1.2MB)
  869.  4    media type established
  870.  3    drive capable of supporting 4MB media
  871.  2-0    on exit from BIOS, contains
  872.     000 trying 360kB in 360kB
  873.     001 trying 360kB in 1.2MB
  874.     010 trying 1.2MB in 1.2MB
  875.     011 360kB in 360kB established
  876.     100 360kB in 1.2MB established
  877.     101 1.2MB in 1.2MB established
  878.     110 reserved
  879.     111 all other formats/drives
  880. SeeAlso: #M030,#M031
  881. ----------M00400091--------------------------
  882. MEM 0040h:0091h - DISKETTE DRIVE 1 MEDIA STATE
  883. Size:    BYTE
  884. SeeAlso: MEM 0040h:0090h,#M029
  885. ----------M00400092--------------------------
  886. MEM 0040h:0092h U - DISKETTE DRIVE 0 MEDIA STATE AT START OF OPERATION
  887. Size:    BYTE
  888. Note:    officially "Drive 2 media state"
  889. SeeAlso: MEM 0040h:0093h"DRIVE 1"
  890.  
  891. Bitfields for diskette drive 0 media state at start of operation:
  892. Bit(s)    Description    (Table M030)
  893.  7-3 (see #M029)
  894.  2    multiple data rate capability determined
  895.  1    multiple data rate capability
  896.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  897. SeeAlso: #M029,#M031
  898. ----------M00400092--------------------------
  899. MEM 0040h:0092h - Olivetti Quaderno - HARD DISK POWERDOWN COUNTDOWN CLOCK TICKS
  900. Size:    BYTE
  901. Note:    hard disk is turned off when counter reaches zero
  902. ----------M00400093--------------------------
  903. MEM 0040h:0093h U - DISKETTE DRIVE 1 MEDIA STATE AT START OF OPERATION
  904. Size:    BYTE
  905. Note:    officially "Drive 3 media state"
  906. SeeAlso: MEM 0040h:0092h"DRIVE 0"
  907.  
  908. Bitfields for diskette drive 1 media state at start of operation:
  909. Bit(s)    Description    (Table M031)
  910.  7-3    (see #M029)
  911.  2    multiple data rate capability determined
  912.  1    multiple data rate capability
  913.  0    =1 if drive has 80 tracks, =0 if 40 tracks
  914. --HP 100LX/200LX--
  915.     display control status
  916.  0    =1 if DISPCTL -K
  917.  1    =1 if DISPCTL -C
  918. ----------M00400094--------------------------
  919. MEM 0040h:0094h - DISKETTE DRIVE 0 CURRENT TRACK NUMBER
  920. Size:    BYTE
  921. SeeAlso: MEM 0040h:0095h
  922. ----------M00400095--------------------------
  923. MEM 0040h:0095h - DISKETTE DRIVE 1 CURRENT TRACK NUMBER
  924. Size:    BYTE
  925. SeeAlso: MEM 0040h:0094h
  926. ----------M00400096--------------------------
  927. MEM 0040h:0096h - KEYBOARD STATUS BYTE 1
  928. Size:    BYTE
  929.  
  930. Bitfields for keyboard status byte 1:
  931. Bit(s)    Description    (Table M032)
  932.  7    =1 read-ID in progress
  933.  6    =1 last code read was first of two ID codes
  934.  5    =1 force Num Lock if read-ID and enhanced keyboard
  935.  4    =1 enhanced keyboard installed
  936.  3    =1 Right Alt pressed
  937.  2    =1 Right Ctrl pressed
  938.  1    =1 last code read was E0h
  939.  0    =1 last code read was E1h
  940. SeeAlso: #M033,#M009
  941. ----------M00400097--------------------------
  942. MEM 0040h:0097h - KEYBOARD STATUS BYTE 2
  943. Size:    BYTE
  944.  
  945. Bitfields for keyboard status byte 2:
  946. Bit(s)    Description    (Table M033)
  947.  7    =1 keyboard transmit error flag
  948.  6    =1 LED update in progress
  949.  5    =1 RESEND received from keyboard
  950.  4    =1 ACK received from keyboard
  951.  3    reserved, must be zero
  952.  2    Caps Lock LED
  953.  1    Num Lock LED
  954.  0    Scroll Lock LED
  955. SeeAlso: #M032,#M009
  956. ----------M00400098--------------------------
  957. MEM 0040h:0098h - TIMER2 (AT, PS exc Mod 30) - PTR TO USER WAIT-COMPLETE FLAG
  958. Size:    DWORD
  959. Note:    (see INT 15/AX=8300h)
  960. ----------M0040009C--------------------------
  961. MEM 0040h:009Ch - TIMER2 (AT, PS exc Mod 30) - USER WAIT COUNT IN MICROSECONDS
  962. Size:    DWORD
  963. ----------M0040009F--------------------------
  964. MEM 0040h:009Fh - HP 100LX/200LX - VIDEO ZOOM MODE
  965. Size:    BYTE
  966.  
  967. (Table M034)
  968. Values for HP 100LX/200LX video zoom mode:
  969.  02h    80x25 mono
  970.  03h    80x25 color
  971.  80h    64x18 mono
  972.  81h    64x18 color
  973.  82h    40x25 mono
  974.  83h    40x25 color
  975.  84h    40x16 mono
  976.  85h    40x16 color
  977. SeeAlso: INT 10/AH=D0h
  978. ----------M004000A0--------------------------
  979. MEM 0040h:00A0h - TIMER2 (AT, PS exc Mod 30) - WAIT ACTIVE FLAG
  980. Size:    BYTE
  981.  
  982. Bitfields for Timer2 wait active flag:
  983. Bit(s)    Description    (Table M035)
  984.  7    wait time elapsed
  985.  6-1    reserved
  986.  0    INT 15/AH=86h has occurred
  987. ----------M004000A1--------------------------
  988. MEM 0040h:00A1h - BIT 5 SET IF LAN SUPPORT PROGRAM INTERRUPT ARBITRATOR PRESENT
  989. Size:    BYTE
  990. Note:    DEVICE=DXMA0MOD.SYS
  991. ----------M004000A2--------------------------
  992. MEM 0040h:00A2h - RESERVED FOR NETWORK ADAPTERS
  993. Size:    6 BYTEs
  994. ----------M004000A4--------------------------
  995. MEM 0040h:00A4h - PS/2 Mod 30 - SAVED FIXED DISK INTERRUPT VECTOR 
  996. Size:    DWORD
  997. ----------M004000A8--------------------------
  998. MEM 0040h:00A8h - VIDEO (EGA/MCGA/VGA) - POINTER TO VIDEO SAVE POINTER TABLE
  999. Size:    DWORD
  1000.  
  1001. Format of Video Save Pointer Table [EGA/VGA/MCGA only]:
  1002. Offset    Size    Description    (Table M036)
  1003.  00h    DWORD    ptr to Video Parameter Table
  1004.  04h    DWORD    ptr to Parameter Dynamic Save Area, else 0 [EGA/VGA only]
  1005.  08h    DWORD    ptr to Alphanumeric Character Set Override, else 0
  1006.  0Ch    DWORD    ptr to Graphics Character Set Override, else 0
  1007.  10h    DWORD    [VGA only] ptr to Secondary Save Pointer Table, must be valid
  1008.  14h    DWORD    reserved, zero
  1009.  18h    DWORD    reserved, zero
  1010. Note: table initially in ROM, copy to RAM to alter, then update 40h:A8h.
  1011.  
  1012. Format of Secondary Video Save Pointer Table [VGA only]:
  1013. Offset    Size    Description    (Table M037)
  1014.  00h    WORD    Length of this table in bytes, including this word (1Ah)
  1015.  02h    DWORD    ptr to Display Combination Code Table, must be valid
  1016.  06h    DWORD    ptr to second Alphanumeric Character Set Override, else 0
  1017.  0Ah    DWORD    ptr to User Palette Profile Table, else 0
  1018.  0Eh    DWORD    reserved, zero
  1019.  12h    DWORD    reserved, zero
  1020.  16h    DWORD    reserved, zero
  1021. Note: table initially in ROM, copy to RAM to alter, then alter Save Ptr Table.
  1022.  
  1023. Format of Display Combination Code Table [VGA only]:
  1024. Offset    Size    Description    (Table M038)
  1025.  00h    BYTE    Number of entries in the DCC table at offset 04h
  1026.  01h    BYTE    Version number
  1027.  02h    BYTE    Maximum display type code that can appear in DCC table
  1028.  03h    BYTE    reserved
  1029.  04h 2N BYTEs    Each pair of bytes gives a valid display combination
  1030.         Meaning of each byte:
  1031.          00h     no display
  1032.          01h     MDA with mono display
  1033.          02h     CGA with color display
  1034.          03h     reserved
  1035.          04h     EGA with color display
  1036.          05h     EGA with mono display
  1037.          06h     Professional Graphics Controller
  1038.          07h     VGA with mono display
  1039.          08h     VGA with color display
  1040.          09h     reserved
  1041.          0Ah     MCGA with digital color display
  1042.          0Bh     MCGA with analog mono display
  1043.          0Ch     MCGA with analog color display
  1044.          FFh     unrecognised video system
  1045.  
  1046. Format of Video Parameter Table [EGA, VGA only]:
  1047. Offset    Size    Description    (Table M039)
  1048.  00h-03h    Modes 00h-03h in 200-line CGA emulation mode
  1049.  04h-0Eh    Modes 04h-0Eh
  1050.  0Fh-10h    Modes 0Fh-10h when only 64kB RAM on adapter
  1051.  11h-12h    Modes 0Fh-10h when >64kB RAM on adapter
  1052.  13h-16h    Modes 00h-03h in 350-line mode
  1053.  17h        VGA Modes 00h or 01h in 400-line mode
  1054.  18h        VGA Modes 02h or 03h in 400-line mode
  1055.  19h        VGA Mode  07h in 400-line mode
  1056.  1Ah-1Ch    VGA Modes 11h-13h
  1057. Note:    An array of 23 [EGA] or 29 [VGA] elements, each element being 64
  1058.       bytes long.  Elements appear in the above order.
  1059.  
  1060. Format of Video Parameter Table element [EGA, VGA only]:
  1061. Offset    Size    Description    (Table M040)
  1062.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1063.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1064.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1065.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1066.  05h  4 BYTEs    Values for Sequencer Registers 1-4
  1067.  09h    BYTE    Value for Miscellaneous Output Register
  1068.  0Ah 25 BYTEs    Values for CRTC Registers 00h-18h
  1069.  23h 20 BYTEs    Values for Attribute Controller Registers 00h-13h
  1070.  37h  9 BYTEs    Values for Graphics Controller Registers 00h-08h
  1071.  
  1072. Format of Video Parameter Table [MCGA only] {guesswork from inspection}:
  1073. Offset    Size    Description    (Table M041)
  1074.     - 16 triplet BYTEs of R,G,B DAC info for 16 colors;
  1075.     - An array of 11 elements, each element being 32 bytes long.
  1076.       Elements appear in the order:
  1077.         Modes 00h,01h in 200-line mode for digital displays
  1078.         Modes 00h,01h in 400-line mode for analog displays
  1079.         Modes 02h,03h in 200-line mode for digital displays
  1080.         Modes 02h,03h in 400-line mode for analog displays
  1081.         Modes 04h,05h in 200-line mode for digital displays
  1082.         Modes 04h,05h in 400-line mode for analog displays
  1083.         Mode  06h in 200-line mode for digital displays
  1084.         Mode  06h in 400-line mode for analog displays
  1085.         Mode  11h
  1086.         Mode  13h in 200-line mode for digital displays
  1087.         Mode  13h in 400-line mode for analog displays
  1088.  
  1089. Format of Video Parameter Table element [MCGA only]:
  1090. Offset    Size    Description    (Table M042)
  1091.  00h    BYTE    Columns on screen          (see 40h:4Ah)
  1092.  01h    BYTE    Rows on screen minus one      (see 40h:84h)
  1093.  02h    BYTE    Height of character in scan lines (see 40h:85h)
  1094.  03h    WORD    Size of video buffer          (see 40h:4Ch)
  1095.  05h    WORD    ??? always zero
  1096.  07h 21 BYTEs    Video data registers 00h-14h to port 3D5h indexed by 3D4h
  1097.  1Ch    BYTE    PEL Mask to port 3C6h
  1098.  1Dh    BYTE    CGA Mode Control to port 3D8h
  1099.  1Eh    BYTE    CGA Border Control to port 3D9h
  1100.  1Fh    BYTE    Extended Mode Control to port 3DDh
  1101.  
  1102. Format of Video Parameter Dynamic Save Area [EGA, VGA only]:
  1103. Offset    Size    Description    (Table M043)
  1104.  00h 16 BYTEs    Last data written to Attribute Contr. Palette Registers 0-15
  1105.  10h    BYTE    Last data written to Attribute Controller Overscan Register
  1106.  11h-FFh    Reserved
  1107.         Note: Need for table was that EGA registers were write-only.
  1108.         Note: If default values (from the Video Parameter Table) are
  1109.               over-ridden at a mode set by the VGA User Palette Profile
  1110.               Table, then the Dynamic Save Area is updated with the
  1111.               default values, not the User Profile ones.
  1112.  
  1113. Format of Alphanumeric Character Set Override:
  1114. Offset    Size    Description    (Table M044)
  1115.  00h    BYTE    Length in bytes of each character in font table
  1116.  01h    BYTE    Character generator RAM bank to load, 0=normal
  1117.  02h    WORD    Number of characters in font table, normally 256
  1118.  04h    WORD    Code of first character in font table, normally 0
  1119.  06h    DWORD    ptr to font table
  1120.  0Ah    BYTE    Displayable rows (FFh=use maximum calculated value)
  1121.  0Bh    BYTEs    Array of mode values to which this font is to pertain
  1122.     BYTE    FFh end of array
  1123.  
  1124. Format of Second Alphanumeric Character Set Override:
  1125. Offset    Size    Description    (Table M045)
  1126.  00h    BYTE    Length in bytes of each character in font table
  1127.  01h    BYTE    Character generator RAM bank to load, normally non-zero
  1128.  02h    BYTE    reserved
  1129.  03h    DWORD    ptr to font table
  1130.  07h    BYTEs    Array of mode values to which this font is to pertain
  1131.     BYTE    FFh end of array
  1132. Note:    Authorities differ, some say same as first override above, but IBM
  1133.       says it is as shown above
  1134.  
  1135. Format of Graphics Character Set Override:
  1136. Offset    Size    Description    (Table M046)
  1137.  00h    BYTE    Number of displayable character rows
  1138.  01h    WORD    Length in bytes of each character in font table
  1139.  03h    DWORD    ptr to font table
  1140.  07h    BYTEs    Array of mode values to which this font is to pertain
  1141.     BYTE    FFh end of array
  1142.  
  1143. Format of User Palette Profile Table [VGA only]:
  1144. Offset    Size    Description    (Table M047)
  1145.  00h    BYTE    Underlining: 01h=enable in all alphanumeric modes
  1146.                  00h=enable in monochrome alphanumeric modes only
  1147.                  FFh=disable in all alphanumeric modes
  1148.  01h    BYTE    reserved
  1149.  02h    WORD    reserved
  1150.  04h    WORD    Number (0-17) of Attribute Controller registers in table
  1151.  06h    WORD    Index (0-16) of first Attribute Controller register in table
  1152.  08h    DWORD    ptr to table of Attribute Controller registers to override
  1153.             Table is an array of BYTEs.
  1154.  0Ch    WORD    Number (0-256) of video DAC Color registers in table
  1155.  0Eh    WORD    Index (0-255) of first video DAC Color register in table
  1156.  10h    DWORD    ptr to table of video DAC Color registers to override
  1157.             Table is ??? triplets ??? of BYTEs???
  1158.  14h    BYTEs    array of mode values to which this profile is to pertain
  1159.     BYTE    FFh end of array
  1160. ----------M004000AC--------------------------
  1161. MEM 0040h:00ACh - RESERVED
  1162. Size:    4 BYTEs
  1163. ----------M004000B0--------------------------
  1164. MEM 0040h:00B0h - Phoenix 386 BIOS 1.10 10a - LOOP COUNT FOR HARD DISK TIMEOUT
  1165. Size:    BYTE
  1166. Desc:    number of times a tight software delay loop should be executed to
  1167.       generate the sub-55ms delays used internally by the BIOS
  1168. Note:    also used for delaying when beeping due to full keyboard buffer
  1169. ----------M004000B0--------------------------
  1170. MEM 0040h:00B0h - PTR TO 3363 OPTICAL DISK DRIVER OR BIOS ENTRY POINT
  1171. Size:    DWORD
  1172. Notes:    When 3363 BIOS present, the ASCIZ signature "OPTIC "occurs 3 bytes
  1173.       beyond this entry point
  1174.     When 3363 BIOS and 3363 File System Driver present, the ASCIZ signature
  1175.       "FILE SYSTEM DRIVER" occurs 3 bytes beyond this entry point
  1176. ----------M004000B0--------------------------
  1177. MEM 0040h:00B0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 48 HARD DISK
  1178. Size:    16 BYTEs
  1179. SeeAlso: INT 41,INT 46
  1180. ----------M004000B4--------------------------
  1181. MEM 0040h:00B4h    - RESERVED
  1182. Size:    WORD
  1183. ----------M004000B5--------------------------
  1184. MEM 0040h:00B5h    - Dell 4xxDE
  1185. Size:    BYTE
  1186.  
  1187. Bitfields for Dell 4xxDE flags:
  1188. Bit(s)    Description    (Table M048)
  1189.  2    ??? (related to disk drives)
  1190.  5    page tables set to allow Weitek addressing in real mode
  1191.  6    Weitek math coprocessor present
  1192. ----------M004000B6--------------------------
  1193. MEM 0040h:00B6h    - RESERVED FOR POST???
  1194. Size:    3 BYTEs
  1195. ----------M004000B9--------------------------
  1196. MEM 0040h:00B9h - ???
  1197. Size:    7 BYTEs
  1198. ----------M004000BC--------------------------
  1199. MEM 0040h:00BCh - 1993 Phoenix 486 BIOS 1.03 PCI - CPU TYPE/MASK REVISION
  1200. Size:    WORD
  1201. Desc:    the high byte contains the CPU type, the low byte the mask revision
  1202.       (stepping level), as reported to the BIOS in DX by the CPU at startup
  1203. SeeAlso: INT 15/AH=C9h
  1204. ----------M004000C0--------------------------
  1205. MEM 0040h:00C0h    - 1988 Phoenix 386 BIOS 1.10 03 - PARAMS FOR TYPE 49 HARD DISK
  1206. Size:    16 BYTEs
  1207. SeeAlso: INT 41,INT 46
  1208. ----------M004000C0--------------------------
  1209. MEM 0040h:00C0h    - RESERVED
  1210. Size:    14 BYTEs
  1211. ----------M004000CE--------------------------
  1212. MEM 0040h:00CEh    - COUNT OF DAYS SINCE LAST BOOT
  1213. Size:    WORD
  1214. ----------M004000D0--------------------------
  1215. MEM 0040h:00D0h - RESERVED
  1216. Size:    32 BYTEs
  1217. ----------M004000D0--------------------------
  1218. MEM 0040h:00D0h    - Digiboard MV/4 - LENGTH OF DATA TABLE
  1219. Size:    BYTE
  1220. ----------M004000D0--------------------------
  1221. MEM 0040h:00D0h    EHD floppy - INSTALLATION FLAGS
  1222. Size:    BYTE
  1223.  
  1224. Bitfields for EHD floppy installation flags:
  1225. Bit(s)    Description    (Table M049)
  1226.  4    installation completed
  1227.  3-0    drives 0-3
  1228. ----------M004000D0--------------------------
  1229. MEM 0040h:00D0h    - AMI BIOS v1.00.12.AX1T - EPP - SCRATCH SPACE
  1230. Size:    WORD
  1231. Desc:    this word holds the value of BX during an EPP BIOS call
  1232. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1233. SeeAlso: MEM 0040h:00DDh"AMI"
  1234. ----------M004000D1--------------------------
  1235. MEM 0040h:00D1h    - Digiboard MV/4 - PRODUCT ID
  1236. Size:    BYTE
  1237. ----------M004000D2--------------------------
  1238. MEM 0040h:00D2h    - Digiboard MV/4 - BASE ADDRESS FOUND
  1239. Size:    WORD
  1240. ----------M004000D2--------------------------
  1241. MEM 0040h:00D2h    - AMI BIOS v1.00.12.AX1T - EPP BASE I/O PORT
  1242. Size:    WORD
  1243. ----------M004000D4--------------------------
  1244. MEM 0040h:00D4h    - Digiboard MV/4 - PORTS
  1245. Size:    BYTE
  1246. ----------M004000D5--------------------------
  1247. MEM 0040h:00D5h    - Digiboard MV/4 - IRQ
  1248. Size:    BYTE
  1249. ----------M004000D5--------------------------
  1250. MEM 0040h:00D5h    - EHD floppy - NUMBER OF FLOPPY DISK CONTROLLERS IN SYSTEM
  1251. Size:    BYTE
  1252. ----------M004000D5--------------------------
  1253. MEM 0040h:00D5h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 CAPABILITIES
  1254. Size:    BYTE
  1255. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1256. SeeAlso: MEM 0040h:00DCh"AMI"
  1257. ----------M004000D6--------------------------
  1258. MEM 0040h:00D6h    - EHD floppy - AND-BITS TO ADJUST PORT ADDRESS
  1259. Size:    BYTE
  1260. Note:    this byte contains FFh if controller at 03Fxh and 7Fh if at 037xh; the
  1261.       value is ANDed with DL prior to using IN A?,DX or OUT DX,A?
  1262.       instructions
  1263. ----------M004000D6--------------------------
  1264. MEM 0040h:00D6h - Digiboard MV/4 - NUMBER OF KEYBOARDS FOUND
  1265. Size:    WORD
  1266. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1267. ----------M004000D6--------------------------
  1268. MEM 0040h:00D6h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 IRQ
  1269. Size:    BYTE
  1270. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D8h"AMI"
  1271. SeeAlso: MEM 0040h:00DDh"AMI"
  1272. ----------M004000D7--------------------------
  1273. MEM 0040h:00D7h - EHD floppy - DRIVE 0 DISKETTE MEDIA STATE
  1274. Size:    BYTE
  1275. Note:    the value in this byte is copied into 0040h:0090h (diskette 0 status)
  1276. SeeAlso: MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1277.  
  1278. Bitfields for EHD diskette media state:
  1279. Bit(s)    Description    (Table M050)
  1280.  7-6    data rate: 00=500kbps,01=300kbps,10=250k,11=1M/S
  1281.  5    double stepping required (e.g. 360kB in 1.2MB)
  1282.  4    media type established
  1283.  3    reserved
  1284.  2-0    on exit from BIOS, contains:
  1285.     000 trying 360kB in 360kB
  1286.     001 trying 360kB in 1.2MB
  1287.     010 trying 1.2MB in 1.2MB
  1288.     011 360kB in 360kB established
  1289.     100 360kB in 1.2MB established
  1290.     101 1.2MB in 1.2MB established
  1291.     110 reserved (2M8?)
  1292.     111 all other formats/drives
  1293. ----------M004000D7--------------------------
  1294. MEM 0040h:00D7h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 CAPABILITIES
  1295. Size:    BYTE
  1296. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00D6h"AMI"
  1297. SeeAlso: MEM 0040h:00DDh"AMI"
  1298. ----------M004000D8--------------------------
  1299. MEM 0040h:00D8h - Digiboard MV/4 - NUMBER OF MICE FOUND
  1300. Size:    WORD
  1301. SeeAlso: MEM 0040h:00D6h"Digiboard",MEM 0040h:00DAh"Digiboard"
  1302. ----------M004000D8--------------------------
  1303. MEM 0040h:00D8h - EHD floppy - DRIVE 1 DISKETTE MEDIA STATE
  1304. Size:    BYTE
  1305. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D9h"EHD",MEM 0040h:00DAh"EHD"
  1306. ----------M004000D8--------------------------
  1307. MEM 0040h:00D8h    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 IRQ
  1308. Size:    BYTE
  1309. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D6h"AMI",MEM 0040h:00D7h"AMI"
  1310. SeeAlso: MEM 0040h:00DDh"AMI"
  1311. ----------M004000D9--------------------------
  1312. MEM 0040h:00D9h - EHD floppy - DRIVE 2 DISKETTE MEDIA STATE
  1313. Size:    BYTE
  1314. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00DAh"EHD"
  1315. ----------M004000DA--------------------------
  1316. MEM 0040h:00DAh - Digiboard MV/4 - CURRENT PORT (used by VGA initializatn only)
  1317. Size:    BYTE
  1318. SeeAlso: MEM 0040h:00D8h"Digiboard"
  1319. ----------M004000DA--------------------------
  1320. MEM 0040h:00DAh - EHD floppy - DRIVE 3 DISKETTE MEDIA STATE
  1321. Size:    BYTE
  1322. SeeAlso: MEM 0040h:00D7h"EHD",MEM 0040h:00D8h"EHD",MEM 0040h:00D9h"EHD"
  1323. ----------M004000DB--------------------------
  1324. MEM 0040h:00DBh - Digiboard MV/4 - MASTER 8259 MASK (used by VGA init only)
  1325. Size:    BYTE
  1326. SeeAlso: MEM 0040h:00DCh"Digiboard"
  1327. ----------M004000DB--------------------------
  1328. MEM 0040h:00DBh - EHD floppy - DRIVE 0 NEEDS RECALIBARATION
  1329. Size:    BYTE
  1330. SeeAlso: MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1331. ----------M004000DC--------------------------
  1332. MEM 0040h:00DCh - Digiboard MV/4 - SLAVE 8259 MASK (used by VGA init only)
  1333. Size:    BYTE
  1334. SeeAlso: MEM 0040h:00DBh"Digiboard"
  1335. ----------M004000DC--------------------------
  1336. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 0 MODE
  1337. Size:    BYTE
  1338. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00D5h"AMI",MEM 0040h:00DDh"AMI"
  1339. SeeAlso: INT 17/AX=0200h/BX=5050h
  1340.  
  1341. (Table M051)
  1342. Values for AMI Enhanced Parallel Port mode:
  1343.  01h    compatibility mode
  1344.  02h    bi-directional mode
  1345.  04h    EPP mode
  1346. SeeAlso: #0534
  1347. ----------M004000DC--------------------------
  1348. MEM 0040h:00DCh - EHD floppy - DRIVE 1 NEEDS RECALIBARATION
  1349. Size:    BYTE
  1350. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DDh"EHD",MEM 0040h:00DEh"EHD"
  1351. ----------M004000DC--------------------------
  1352. MEM 0040h:00DCh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT 1 MODE
  1353. Size:    BYTE
  1354. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI",#M051
  1355. ----------M004000DD--------------------------
  1356. MEM 0040h:00DDh - EHD floppy - DRIVE 2 NEEDS RECALIBARATION
  1357. Size:    BYTE
  1358. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DEh"EHD"
  1359. ----------M004000DE--------------------------
  1360. MEM 0040h:00DEh - EHD floppy - DRIVE 3 NEEDS RECALIBARATION
  1361. Size:    BYTE
  1362. SeeAlso: MEM 0040h:00DBh"EHD",MEM 0040h:00DCh"EHD",MEM 0040h:00DDh"EHD"
  1363. ----------M004000DF--------------------------
  1364. MEM 0040h:00DFh    - AMI BIOS v1.00.12.AX1T - EPP - PARALLEL PORT LOCK STATE
  1365. Size:    BYTE
  1366. Note:    set to 01h if last request was to lock a port, 00h if last request was
  1367.       to unlock a port
  1368. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DCh"AMI"
  1369. ----------M004000E0--------------------------
  1370. MEM 0040h:00E0h    - AMI BIOS v1.00.12.AX1T - EPP - REAL-TIME DEVICE COUNT
  1371. Size:    BYTE
  1372. Desc:    contains the number of advertised real-time devices as set by EPP
  1373.       function 12h (see #0529)
  1374. SeeAlso: MEM 0040h:00D2h"AMI",MEM 0040h:00DFh"AMI"
  1375. ----------M004000E0--------------------------
  1376. MEM 0040h:00E0h - Phoenix 386 BIOS - DRIVE PARAMETER TABLE FOR FIRST HARD DISK
  1377. Size:    16 BYTEs
  1378. Note:    this area is used to store the driver parameter table for the first
  1379.       hard disk if it has been setup as the user-configurable "type 47"
  1380. ----------M004000E3--------------------------
  1381. MEM 0040h:00E3h - EHD floppy - DRIVE 0 DISKETTE TYPE (from jumpers)
  1382. Size:    BYTE
  1383. SeeAlso: MEM 0040h:00E4h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1384.  
  1385. (Table M052)
  1386. Values for EHD floppy diskette type:
  1387.  01h    undefined by diskette change (360K)
  1388.  02h    1.2M
  1389.  03h    720K
  1390.  04h    1.44M
  1391.  05h    2.88M
  1392. ----------M004000E4--------------------------
  1393. MEM 0040h:00E4h - EHD floppy - DRIVE 1 DISKETTE TYPE (from jumpers)
  1394. Size:    BYTE
  1395. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E5h"EHD",MEM 0040h:00E6h"EHD"
  1396. ----------M004000E5--------------------------
  1397. MEM 0040h:00E5h - EHD floppy - DRIVE 2 DISKETTE TYPE (from jumpers)
  1398. Size:    BYTE
  1399. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E6h"EHD"
  1400. ----------M004000E6--------------------------
  1401. MEM 0040h:00E6h - EHD floppy - DRIVE 3 DISKETTE TYPE (from jumpers)
  1402. Size:    BYTE
  1403. SeeAlso: MEM 0040h:00E3h,MEM 0040h:00E4h"EHD",MEM 0040h:00E5h"EHD"
  1404. ----------M004000EA--------------------------
  1405. MEM 0040h:00EAh - Omti controller - SEGMENT OF EXTENDED BIOS DATA AREA???
  1406. Size:    WORD
  1407. Note:    drive parameter tables stored in specified segment
  1408. ----------M004000EC--------------------------
  1409. MEM 0040h:00ECh - Dell 4xxDE BIOS A11 - LOOP COUNT FOR DELAYS
  1410. Size:    WORD
  1411. ----------M004000F0--------------------------
  1412. MEM 0040h:00F0h - INTRA-APPLICATION COMMUNICATION AREA
  1413. Size:    16 BYTEs
  1414. ----------M00500000--------------------------
  1415. MEM 0050h:0000h - PRINT-SCREEN STATUS
  1416. Size:    BYTE
  1417. --------J-M00500001--------------------------
  1418. MEM 0050h:0001h - NEC PC-9800 series - SCREEN MODE
  1419. Size:    BYTE
  1420. Note:    if bit 3 set, the screen is in high-resolution mode (start memory at
  1421.       segment E000h instead of A000h)
  1422. ----------M00500004--------------------------
  1423. MEM 0050h:0004h - MS-DOS - LOGICAL DRIVE FOR SINGLE-FLOPPY SYSTEM (A: / B:)
  1424. Size:    BYTE
  1425. ----------M0050000E--------------------------
  1426. MEM 0050h:000Eh - STATE OF BREAK CHECKING AT START OF BASICA.COM EXECUTION
  1427. Size:    BYTE
  1428. ----------M0050000F--------------------------
  1429. MEM 0050h:000Fh - BASICA VERSION FLAG
  1430. Size:    BYTE
  1431. Note:    this byte contains the value 02h if BASICA v2.10 is running
  1432. ----------M00500010--------------------------
  1433. MEM 0050h:0010h - POINTER TO BASIC DATA SEGMENT
  1434. Size:    WORD
  1435. ----------M00500012--------------------------
  1436. MEM 0050h:0012h - INT 08 VECTOR AT START OF BASICA.COM EXECUTION
  1437. Size:    DWORD
  1438. ----------M00500016--------------------------
  1439. MEM 0050h:0016h - INT 1B VECTOR AT START OF BASICA.COM EXECUTION
  1440. Size:    DWORD
  1441. ----------M0050001A--------------------------
  1442. MEM 0050h:001Ah - INT 24 VECTOR AT START OF BASICA.COM EXECUTION
  1443. Size:    DWORD
  1444. ----------M00600000--------------------------
  1445. MEM 0060h:0000h - DOS SCRATCH SPACE
  1446. Size:    256 BYTEs
  1447. Note:    used during DOS 2+ boot process
  1448. ----------M00700000--------------------------
  1449. MEM 0070h:0000h - DOS 2+ IO.SYS LOAD ADDRESS
  1450. ----------m80C00000--------------------------
  1451. MEM 80C00000h - Compaq Deskpro 386 system memory board register
  1452. Size:    BYTE
  1453.  
  1454. 80C00000  R   Diagnostics register (see #M053)
  1455. 80C00000   W  RAM relocation register (see #M054)
  1456.  
  1457. Bitfields for Compaq Deskpro 386 diagnostics register:
  1458. Bit(s)    Description    (Table M053)
  1459.  7    =0 memory expansion board is installed
  1460.  6    =0 second 1 MB of system memory board is installed
  1461.  5-4    base memory
  1462.     00 set to 640 KB
  1463.     01 invalid
  1464.     10 set to 512 KB
  1465.     11 set to 256 KB
  1466.  3    parity correct in byte 3
  1467.  2    parity correct in byte 2
  1468.  1    parity correct in byte 1
  1469.  0    parity correct in byte 0 (in 32-bit double word)
  1470. SeeAlso: #M054
  1471.  
  1472. Bitfields for Compaq Deskpro 386 RAM relocation register:
  1473. Bit(s)    Description    (Table M054)
  1474.  7-2    reserved, always write 1's.
  1475.  1    =0  Write-protect 128-Kbyte RAM at FE0000.
  1476.     =1  Do not write-protect RAM at FE0000.
  1477.  0    =0  Relocate 128-Kbyte block at FE0000 to address 0E0000
  1478.     =1  128-Kbyte RAM is addressed only at FE0000.
  1479. SeeAlso: #M053
  1480. ----------MA0000000--------------------------
  1481. MEM A000h:0000h - EGA+ GRAPHICS BUFFER
  1482. Size:    65536 BYTEs
  1483. ----------MB0000000--------------------------
  1484. MEM B000h:0000h - MDA TEXT BUFFER
  1485. Size:    4096 BYTEs
  1486. ----------MB0000000--------------------------
  1487. MEM B000h:0000h - HGC+ RAMFont-MODE TEXT BUFFER
  1488. Size:    16384 BYTEs
  1489. Note:    in RAMFont Mode 1, the memory is filled with the usual
  1490.       character/attribute pairs; in RAMFont Mode 2, four bits of each
  1491.       'attribute' byte is used to provide 12 bits for specifying the
  1492.       character
  1493. ----------MB0000000--------------------------
  1494. MEM B000h:0000h - HGC GRAPHICS BUFFER (PAGE 0)
  1495. Size:    32768 BYTEs
  1496. ----------MB4000000--------------------------
  1497. MEM B400h:0000h - HGC+ RAMFont BUFFER
  1498. Size:    4096 BYTEs
  1499. Notes:    apparently write-only
  1500.     RAMFont Mode 1: 256 characters (8 bits each for char and attribute)
  1501.     RAMFont Mode 2: 3072 characters (12 bits for char, 4 bits for attrib)
  1502.     each character definition is 8 pixels wide (with 9th-column duplication
  1503.       if appropriate) by 8-16 pixels high
  1504. ----------MB8000000--------------------------
  1505. MEM B800h:0000h - CGA TEXT/GRAPHICS BUFFER
  1506. Size:    16384 BYTEs
  1507. --------V-MB8000000--------------------------
  1508. MEM B800h:0000h - EGA/VGA+ TEXT BUFFER
  1509. Size:    32768 BYTEs
  1510. --------V-MB8000000--------------------------
  1511. MEM B800h:0000h - HGC GRAPHICS BUFFER (PAGE 1)
  1512. Size:    32768 BYTEs
  1513. ----------MBFF00000--------------------------
  1514. MEM BFF0h:0000h - ET4000/W32 ACL accelerator
  1515. Size:    169 BYTES
  1516.  
  1517. Format of ET4000/W32 memory-mapped registers:
  1518. Offset    Size    Description    (Table M055)
  1519.  00h    DWORD    MMU Registers: memory base pointer register 0 (see #M056)
  1520.  04h    DWORD    MMU Registers: memory base pointer register 1 (see #M056)
  1521.  08h    DWORD    MMU Registers: memory base pointer register 2 (see #M056)
  1522.  0Ch  7 BYTEs    ???
  1523.  13h    BYTE    MMU Registers: MMU control register (see #M057)
  1524.  14h 28 BYTEs    ???
  1525.  30h    BYTE    Non-Queued Registers: suspend/terminate
  1526.  31h    BYTE    Non-Queued Registers: operation state (see #M058) (write-only)
  1527.  32h    BYTE    Non-Queued Registers: sync enable
  1528.  33h    BYTE    ???
  1529.  34h    BYTE    Non-Queued Registers: interrupt mask
  1530.  35h    BYTE    Non-Queued Registers: interrupt status
  1531.  36h    BYTE    Non-Queued Registers: ACL status (read-only)
  1532.         bit 1: read status (RDST) 1=ACL active, queue not empty
  1533.         bit 0: write status (WRST) 1=queue full
  1534.  37h 73 BYTEs    ???
  1535.  80h    DWORD    Queued Registers: pattern address (see #M059)
  1536.  84h    DWORD    Queued Registers: source address (see #M059)
  1537.  88h    WORD    Queued Registers: pattern Y offset (see #M060)
  1538.  8Ah    WORD    Queued Registers: source Y offset (see #M060)
  1539.  8Ch    WORD    Queued Registers: destination y offset (see #M060)
  1540.  8Eh    BYTE    Queued Registers: virtual bus size
  1541.  8Fh    BYTE    Queued Registers: X/Y direction (see #M061)
  1542.  90h    BYTE    Queued Registers: pattern wrap (see #M062)
  1543.  91h    BYTE    ???
  1544.  92h    BYTE    Queued Registers: source wrap (see #M062)
  1545.  93h    BYTE    ???
  1546.  94h    WORD    Queued Registers: X position
  1547.  96h    WORD    Queued Registers: Y position
  1548.  98h    WORD    Queued Registers: X count (see #M063)
  1549.  9Ah    WORD    Queued Registers: Y count (see #M063)
  1550.  9Ch    BYTE    Queued Registers: routine control (see #M064)
  1551.  9Dh    BYTE    Queued Registers: reload control
  1552.  9Eh    BYTE    Queued Registers: background ROP for mixing
  1553.  9Fh    BYTE    Queued Registers: foreground ROP for mixing
  1554.  A0h    DWORD    Queued Registers: destination address
  1555.  A4h    DWORD    Queued Registers: internal pattern address
  1556.  A8h    DWORD    Queued Registers: internal source address
  1557.  
  1558. Bitfields for ET4000/W32 memory base pointer register:
  1559. Bit(s)    Description    (Table M056)
  1560.  31-22    reserved
  1561.  21-0    memory base pointer
  1562. SeeAlso: #M055
  1563.  
  1564. Bitfields for ET4000/W32 MMU control register:
  1565. Bit(s)    Description    (Table M057)
  1566.  7    reserved
  1567.  6-4    linear address control (LAC)
  1568.       bit 6: MMU aperture 2
  1569.       bit 5: MMU aperture 1
  1570.       bit 4: MMU aperture 0
  1571.  3    reserved
  1572.  t2-0    aperture type (APT)
  1573.       bit 2: MMU aperture 2
  1574.       bit 1: MMU aperture 1
  1575.       bit 0: MMU aperture 0
  1576. SeeAlso: #M055 
  1577.  
  1578. Bitfields for ET4000/W32 operation state register:
  1579. Bit(s)    Description    (Table M058)
  1580.  7-4    reserved
  1581.  3    restart operation after ACL-interruption
  1582.  2-1    reserved
  1583.  0    restore status before ACL-interruption
  1584. SeeAlso: #M055
  1585.  
  1586. Bitfields for ET4000/W32 memory address register:
  1587. Bit(s)    Description    (Table M059)
  1588.  31-22    reserved
  1589.  21-0    memory base pointer
  1590. SeeAlso: #M055
  1591.  
  1592. Bitfields for ET4000/W32 offset register:
  1593. Bit(s)    Description    (Table M060)
  1594.  15-12    reserved
  1595.  11-0    Y offset
  1596. SeeAlso: #M055
  1597.  
  1598. Bitfields for ET4000/W32 X/Y direction register:
  1599. Bit(s)    Description    (Table M061)
  1600.  7-2    reserved
  1601.  1    X direction
  1602.  0    Y direction
  1603. SeeAlso: #M055
  1604.  
  1605. Bitfields for ET4000/W32 wrap register:
  1606. Bit(s)    Description    (Table M062)
  1607.  7    reserved
  1608.  6-4    pattern Y wrap
  1609.     000 = 1 line    
  1610.     001 = 2 lines    
  1611.     010 = 4 lines    
  1612.     011 = 8 lines    
  1613.     100 = reserved
  1614.     101 = reserved
  1615.     110 = reserved
  1616.     111 = no wrap 
  1617.  3    reserved
  1618.  2-0    pattern X wrap
  1619.     000 = reserved    
  1620.     001 = reserved    
  1621.     010 = 4 byte    
  1622.     011 = 8 byte    
  1623.     100 = 16 byte    
  1624.     101 = 32 byte    
  1625.     110 = 64 byte    
  1626.     111 = no wrap    
  1627. SeeAlso: #M055
  1628.  
  1629. Bitfields for ET4000/W32 count register:
  1630. Bit(s)    Description    (Table M063)
  1631.  15-12    reserved
  1632.  11-0    pixel count
  1633. SeeAlso: #M055
  1634.  
  1635. Bitfields for ET4000/W32 routine control register:
  1636. Bit(s)    Description    (Table M064)
  1637.  7-6    reserved               
  1638.  5-4    routing of CPU address (ADRO)       
  1639.     00 don't use CPU address       
  1640.     01 CPU address is destination    
  1641.     10 reserved               
  1642.     11 reserved               
  1643.  3    reserved               
  1644.  2-0    routing of CPU data (DARQ)       
  1645.     000 don't use CPU data       
  1646.     001 CPU data is source data       
  1647.     010 CPU data is mixed data       
  1648.     011 reserved               
  1649.     100 CPU data is x-count       
  1650.     101 CPU data is y-count       
  1651.     10x reserved            
  1652. SeeAlso: #M055 
  1653. ----------MC0000000--------------------------
  1654. MEM C000h:0000h - VIDEO BIOS (EGA and newer)
  1655. Size:    varies (usually 16K-24K for EGA, 24K-32K for VGA)
  1656. ----------mC0000000--------------------------
  1657. MEM C0000000h -    Weitek "Abacus" math coprocessor
  1658. Size:    4096 BYTEs
  1659. ----------MC8000000--------------------------
  1660. MEM C800h:0000h - HARD DISK BIOS
  1661. Size:    varies (usually 8K or 16K)
  1662. ----------MC8001C00--------------------------
  1663. MEM C800h:1C00h - IBM XGA, XGA/A - MEMORY-MAPPED REGISTERS
  1664. Range:    any 8K boundary within segments C000h to DFFFh
  1665. Notes:    The XGA memory mapped registers can be assigned to the last 1K block in
  1666.       in each 8K block in the range of C0000h-DFFFFh; the base offset of
  1667.       the 128 memory mapped lcoation for a particular XGA instance is
  1668.       Segment:(1C00h+instance*80h) for each XGA installed in a system
  1669.       (default instance is 6).  The instance number may be read from the
  1670.       XGA's Programmable Option Select registers
  1671.     The XGA/A (PS/2 adapter) uses the 7KB area below the memory-mapped
  1672.       register area for ROM data; the XGA (PS/2 onboard) has included
  1673.       this area in it's video BIOS ROM.
  1674.     Most of the memory mapped registers are from the graphics coprocessor,
  1675.       while the I/O-registers are for the display controller.
  1676. ----------MF0006000--------------------------
  1677. MEM F000h:6000h - IBM PC ROM BASIC
  1678. Size:    32768 BYTEs
  1679. --------B-MF000E000--------------------------
  1680. MEM F000h:E000h - ORIGINAL IBM PC ROM BIOS
  1681. Size:    8192 BYTEs
  1682. --------H-MF000FFF0--------------------------
  1683. MEM F000h:FFF0h - RESET JUMP
  1684. Size:    5 BYTEs
  1685. --------B-MF000FFF5--------------------------
  1686. MEM F000h:FFF5h - ASCII BIOS DATE
  1687. Size:    8 BYTEs
  1688. ----------MF000FFFD--------------------------
  1689. MEM F000h:FFFDh - OFTEN USED TO ENSURE CORRECT BIOS CHECKSUM
  1690. Size:    BYTE
  1691. --------B-MF000FFFE--------------------------
  1692. MEM F000h:FFFEh - MACHINE TYPE CODE
  1693. Size:    BYTE
  1694. SeeAlso: INT 15/AH=C0h
  1695. --------B-MF000xxxx--------------------------
  1696. MEM F000h:xxxxh - AWARD Flash Hook
  1697.  
  1698. Format of AWARD Flash BIOS interface:
  1699. Offset    Size    Description    (Table M065)
  1700.  00h  8 BYTEs    signature "AWDFLASH"
  1701.  08h    WORD    offset in F000h of FAR function: Get ???
  1702.         Return: BL = ??? (00h)
  1703.  0Ah    WORD    offset in F000h of FAR function: ???
  1704.  0Ch    WORD    offset in F000h of FAR function: ???
  1705.  0Eh    WORD    offset in F000h of FAR function: ???
  1706.  10h    WORD    offset in F000h of FAR function: ???
  1707.  12h    WORD    offset in F000h of FAR function: Disable Shadowing
  1708.  14h    WORD    offset in F000h of FAR function: Enable Shadowing
  1709.  16h    WORD    offset in F000h of FAR function: Get ???
  1710.         Return: DS:SI -> ??? (30 bytes?)
  1711.  18h    WORD    offset in F000h of FAR function: Set ???
  1712.         DS:SI -> ??? (appears to be same as previous function)
  1713. Note:    the AWDFLASH utility copies the ROM from F000h and uses the copy
  1714.       instead of the original F000h:xxxxh addresses
  1715. --------B-MF000xxxx--------------------------
  1716. MEM F000h:xxxxh - Asustek Flash Hook
  1717.  
  1718. Format of Asustek Flash interface:
  1719. Offset    Size    Description    (Table M066)
  1720.  00h 10 BYTEs    signature "ASUS_FLASH"
  1721.  0Ah  6 BYTEs    blanks (padding)
  1722.  10h    WORD    interface version??? (current PFLASH.EXE requires 0101h)
  1723.  12h    DWORD    -> position-independent code to enable shadowing
  1724.  16h    WORD    size of code pointed at by previous field (<= 0400h)
  1725.  18h    DWORD    -> position-independent code to disable shadowing
  1726.  1Ch    WORD    size of code pointed at by previous field (<= 0400h)
  1727. ----------Mxxxxxxx0--------------------------
  1728. MEM xxxxh:xxx0h - Multiprocessor Specification - FLOATING POINTER STRUCTURE
  1729. Range: any paragraph boundary in the first kilobyte of the XBDA, the last
  1730.     kilobyte of conventional memory, or from F000h:0000h to F000h:FFE0h
  1731. Note:    scan paragraph boundaries for the signature string "_MP_", followed
  1732.       by a valid floating pointer structure (see #M067)
  1733. SeeAlso: MEM FEE00000h
  1734.  
  1735. Format of Multiprocessor Specification Floating Pointer structure:
  1736. Offset    Size    Description    (Table M067)
  1737.  00h  4 BYTEs    signature "_MP_"
  1738.  04h    DWORD    physical address of MP configuration table (see #M068)
  1739.         00000000h if no configuration table
  1740.  08h    BYTE    length of this structure in paragraphs (currently 01h)
  1741.  09h    BYTE    revision of MP specification supported
  1742.         01h = v1.1
  1743.         04h = v1.4
  1744.  0Ah    BYTE    checksum (8-bit sum of entire structure, including this
  1745.           byte, must equal 00h)
  1746.  0Bh    BYTE    MP feature byte 1: system configuration type
  1747.         00h: MP configuration table present
  1748.         nonzero: default configuration implemented by system
  1749.  0Ch    BYTE    MP feature byte 2
  1750.         bit 7: IMCR present
  1751.         bits 6-0: reserved (0)
  1752.  0Dh  3    BYTEs    MP feature bytes 3-5 (reserved, must be 00h)
  1753.  
  1754. Format of Multiprocessor Specification configuration table header:
  1755. Offset    Size    Description    (Table M068)
  1756.  00h  4 BYTEs    signature "PCMP"
  1757.  04h    WORD    length of base configuration table in bytes, including
  1758.           this header
  1759.  06h    BYTE    revision of MP specification supported
  1760.         01h = v1.1
  1761.         04h = v1.4
  1762.  07h    BYTE    checksum of entire base configuration table
  1763.  08h  8 BYTEs    OEM identifier
  1764.  10h 12 BYTEs    product ID
  1765.  1Ch    DWORD    physical address to OEM-defined configuration table
  1766.         00000000h if not present
  1767.  20h    WORD    size of base OEM table in bytes (0000h if not present)
  1768.  22h    WORD    number of entries in variable portion of base table
  1769.  24h    DWORD    address of local APIC (see also MEM FEE0h:0020h)
  1770.  28h    WORD    length of extended entries following end of base table
  1771.           (in bytes)
  1772.  2Ah    BYTE    checksum for extended table entries (includes only
  1773.           extended entries following base table)
  1774.  2Ch    var    configuration table entries (see #M069)
  1775. SeeAlso: #M067
  1776.  
  1777. Format of Multiprocessor Specification configuration table entries:
  1778. Offset    Size    Description    (Table M069)
  1779.  00h    BYTE    entry type code
  1780.         00h processor
  1781.         01h bus
  1782.         02h I/O APIC
  1783.         03h I/IO interrupt assignment
  1784.         04h local interrupt assignment
  1785.         80h system address space mapping
  1786.         81h bus hierarchy descriptor
  1787.         82h compatibility bus address space modifier
  1788. ---processor---
  1789.  01h    BYTE    local APIC identifier
  1790.  02h    BYTE    local APIC version
  1791.  03h    BYTE    CPU flags
  1792.         bit 0: processor usable
  1793.         bit 1: bootstrap processor
  1794.  04h    WORD    CPU type
  1795.         bits 11-8: CPU family
  1796.         bits 7-4: CPU model
  1797.         bits 3-0: stepping
  1798.         (bits 11-0 all set indicate non-Intel-compatible CPU)
  1799.  06h  2 BYTEs    unused
  1800.  08h    DWORD    feature flags (as returned by Pentium CPUID instruction)
  1801.  0Ch  8 BYTEs    reserved
  1802. ---bus---
  1803.  01h    BYTE    bus ID (assigned sequentially from 00h by BIOS)
  1804.  02h  6 BYTEs    bus type (blank-padded ASCII string) (see #M070)
  1805. ---I/O APIC---
  1806.  01h    BYTE    APIC identifier
  1807.  02h    BYTE    APIC version
  1808.  03h    BYTE    I/O APIC flags
  1809.         bit 0: enabled
  1810.         bits 7-1: reserved
  1811.  04h    DWORD    base address for APIC
  1812. ---I/O,local interrupt assignment---
  1813.  01h    BYTE    interrupt type
  1814.         00h vectored interrupt (from APIC)
  1815.         01h NMI
  1816.         02h system management interrupt
  1817.         03h vectored interrupt (from external PIC)
  1818.  02h    BYTE    APIC control (see #M071)
  1819.  03h    BYTE    unused
  1820.  04h    BYTE    source bus identifier
  1821.  05h    BYTE    source bus IRQ
  1822.  06h    BYTE    destination I/O APIC identifier
  1823.  07h    BYTE    destination I/O APIC interrupt pin number
  1824. ---system address space mapping---
  1825.  01h    BYTE    entry length (14h)
  1826.  02h    BYTE    bus ID
  1827.  03h    BYTE    address type (00h I/O, 01h memory, 02h prefetch)
  1828.  04h    QWORD    starting address of region visible to bus
  1829.  0Ch    QWORD    length of region visible to bus
  1830. ---bus hierarchy descriptor---
  1831.  01h    BYTE    entry length (08h)
  1832.  02h    BYTE    bus ID
  1833.  03h    BYTE    bus information
  1834.         bit 0: subtractive decoding
  1835.  04h    BYTE    ID of parent bus
  1836.  05h  3 BYTEs    reserved
  1837. ---compatibility bus address space modifier---
  1838.  01h    BYTE    entry length (08h)
  1839.  02h    BYTE    bus ID
  1840.  03h    BYTE    address modifier
  1841.         bit 0: remove address ranges in predefined range list from
  1842.               bus's address space
  1843.  04h    DWORD    number indicating predefined address space range to be removed
  1844.         00h ISA-compatible I/O range (x100h-x3FFh and aliases)
  1845.         01h VGA-compatible I/O range (x3B0h-x3BBh,x3C0h-x3DFh,aliases)
  1846. SeeAlso: #M068
  1847.  
  1848. (Table M070)
  1849. Values for Multiprocessor Specification bus name:
  1850.  "CBUS"        Corollary CBus
  1851.  "CBUSII"    Corollary CBus II
  1852.  "EISA"
  1853.  "FUTURE"    IEEE FutureBus
  1854.  "INTERN"    internal bus
  1855.  "ISA"
  1856.  "MBI"        Multibus I
  1857.  "MBII"        Multibus II
  1858.  "MCA"        Microchannel
  1859.  "MPI"
  1860.  "MPSA"
  1861.  "NUBUS"    Apple Macintosh NuBus
  1862.  "PCI"
  1863.  "PCMCIA"
  1864.  "TC"        DEC TurboChannel
  1865.  "VL"        VESA Local Bus
  1866.  "VME"        VMEbus
  1867.  "XPRESS"    Express System Bus
  1868. SeeAlso: #M069
  1869.  
  1870. Bitfields for Multiprocessor Specification APIC control:
  1871. Bit(s)    Description    (Table M071)
  1872.  1-0    input signal polarity
  1873.     00 conforms to bus specification
  1874.     01 active high
  1875.     10 reserved
  1876.     11 active low
  1877.  3-2    trigger mode
  1878.     00 conforms to bus specification
  1879.     01 edge-triggered
  1880.     10 reserved
  1881.     11 level-triggered
  1882. SeeAlso: #M069
  1883. ----------mFEC00000--------------------------
  1884. MEM FEC00000h - Pentium - I/O APIC
  1885. Size:    4096 BYTEs
  1886. Range:    the Multiprocessor Specification calls for I/O APICs to be memory-
  1887.       mapped on 4K boundaries between FEC00000h and FEDFC000h
  1888. SeeAlso: MEM FEE00000h,MEM xxxxh:xxx0h"Multiprocessor"
  1889. ----------mFEE00000--------------------------
  1890. MEM FEE00000h - Pentium - LOCAL APIC
  1891. Size:    4096 BYTEs
  1892. Notes:    the Advanced Programmable Interrupt Controller built into
  1893.       multiprocessor-capable Pentiums (P54C, etc. -- basically 75MHz and
  1894.       faster Pentiums) maps its registers into the top of the physical
  1895.       address space on data reads and writes, but not on code reads;
  1896.       data accesses to the APIC registers do not cause external bus
  1897.       cycles
  1898.     the APIC's registers are only visible when the APIC is enabled (which
  1899.       occurs at CPU reset when external data lines contain proper signals)
  1900.     the PentiumPro (P6) permits the address at which the local APIC
  1901.       appears to be changed with Model-Specific Register 0000001Bh
  1902. SeeAlso: MEM FEC00000h,MEM FEE00020h,MEM xxxxh:xxx0h"Multiprocessor"
  1903. SeeAlso: MSR 0000001Bh
  1904. ----------mFEE00020--------------------------
  1905. MEM FEE00020h - Pentium - LOCAL APIC - LOCAL APIC ID REGISTER
  1906. SeeAlso: MEM FEE00030h
  1907. ----------mFEE00030--------------------------
  1908. MEM FEE00030h - Pentium - LOCAL APIC - LOCAL APIC VERSION REGISTER
  1909. Note:    read-only
  1910. SeeAlso: MEM FEE00020h
  1911. ----------mFEE00040--------------------------
  1912. MEM FEE00040h - Pentium - LOCAL APIC - RESERVED
  1913. SeeAlso: MEM FEE00000h
  1914. ----------mFEE00050--------------------------
  1915. MEM FEE00050h - Pentium - LOCAL APIC - RESERVED
  1916. SeeAlso: MEM FEE00000h
  1917. ----------mFEE00060--------------------------
  1918. MEM FEE00060h - Pentium - LOCAL APIC - RESERVED
  1919. SeeAlso: MEM FEE00000h
  1920. ----------mFEE00070--------------------------
  1921. MEM FEE00070h - Pentium - LOCAL APIC - RESERVED
  1922. SeeAlso: MEM FEE00000h
  1923. ----------mFEE00080--------------------------
  1924. MEM FEE00080h - Pentium - LOCAL APIC - TASK PRIORITY REGISTER (TPR)
  1925. ----------mFEE00090--------------------------
  1926. MEM FEE00090h - Pentium - LOCAL APIC - ARBITRATION PRIORITY REGISTER (APR)
  1927. Note:    read-only
  1928. ----------mFEE000A0--------------------------
  1929. MEM FEE000A0h - Pentium - LOCAL APIC - END OF INTERRUPT REGISTER (EOI)
  1930. Note:    write-only
  1931. ----------mFEE000A0--------------------------
  1932. MEM FEE000A0h - Pentium - LOCAL APIC - PROCESSOR PRIORITY REGISTER (PPR)
  1933. Note:    read-only
  1934. SeeAlso: MEM FEE00000h
  1935. ----------mFEE000B0--------------------------
  1936. MEM FEE000B0h - Pentium - LOCAL APIC - RESERVED
  1937. SeeAlso: MEM FEE00000h
  1938. ----------mFEE000C0--------------------------
  1939. MEM FEE000C0h - Pentium - LOCAL APIC - REMOTE READ REGISTER
  1940. Note:    read-only
  1941. ----------mFEE000D0--------------------------
  1942. MEM FEE000D0h - Pentium - LOCAL APIC - LOGICAL DURATION REGISTER (LDR)
  1943. SeeAlso: MEM FEE00000h
  1944. ----------mFEE000E0--------------------------
  1945. MEM FEE000E0h - Pentium - LOCAL APIC - DESTINATION FORMAT REGISTER (DFR)
  1946.     bits 27-0: read-only
  1947.     bits 31-28: read-write
  1948. ----------mFEE000F0--------------------------
  1949. MEM FEE000F0h - Pentium - LOCAL APIC - SPURIOUS INTERRUPT VECTOR REGISTER
  1950.     bits 3-0, read-only
  1951.     bits 9-4, read/write
  1952. ----------mFEE00100--------------------------
  1953. MEM FEE00100h - Pentium - LOCAL APIC - IN-SERVICE REGISTER (ISR)
  1954. Size:    128 BYTEs
  1955. Note:    read-only
  1956. SeeAlso: MEM FEE00200h
  1957. ----------mFEE00180--------------------------
  1958. MEM FEE00180h - Pentium - LOCAL APIC - TRIGGER MODE REGISTER (TMR)
  1959. Size:    128 BYTEs
  1960. Note:    read-only
  1961. SeeAlso: MEM FEE00000h
  1962. ----------mFEE00200--------------------------
  1963. MEM FEE00200h - Pentium - LOCAL APIC - INTERRUPT REQUEST REGISTER (IRR)
  1964. Size:    128 BYTEs
  1965. Note:    read-only
  1966. SeeAlso: MEM FEE00100h
  1967. ----------mFEE00280--------------------------
  1968. MEM FEE00280h - Pentium - LOCAL APIC - ERROR STATUS REGISTER
  1969. Size:    4 BYTEs
  1970. Note:    read-only
  1971.  
  1972. Bitfields for Pentium APIC error status register:
  1973. Bit(s)    Description    (Table M072)
  1974.  0    send checksum error
  1975.  1    receive checksum error
  1976.  2    send accept error
  1977.  3    receive accept error
  1978.  4    reserved
  1979.  5    send illegal vector
  1980.  6    receive illegal vector
  1981.  7    illegal register address
  1982.  31-8    reserved
  1983. ----------mFEE00300--------------------------
  1984. MEM FEE00300h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  1985. Size:    4 BYTEs
  1986. Note:    this is the low half of the 64-bit ICR
  1987. SeeAlso: MEM FEE00310h,#M073
  1988.  
  1989. Bitfields for Pentium APIC Interrupt Command Register:
  1990. Bit(s)    Description    (Table M073)
  1991.  7-0    interrupt vector number
  1992.  10-8    delivery mode (see #M074)
  1993.  11    destination mode
  1994.  12    delivery status (read-only)
  1995.     1 = transfer pending
  1996.  13    reserved
  1997.  14    level (0 = INIT Level Deassert message, 1 = anything else)
  1998.  15    trigger mode (1)
  1999.  17-16    remote read status (read-only)
  2000.  19-18    destination shorthand
  2001.     00 as specified by destination field
  2002.     01 self
  2003.     10 all including self
  2004.     11 all except self
  2005.  55-20    reserved
  2006.  63-56    destination for interrupt request or message
  2007. SeeAlso: #M076
  2008.  
  2009. (Table M074)
  2010. Values for Pentium APIC delivery mode:
  2011.  000b    fixed
  2012.  001b    lowest-priority
  2013.  010b    SMI
  2014.  011b    remote read
  2015.  100b    NMI
  2016.  101b    INIT
  2017.  110b    start up
  2018.  111b    reserved
  2019. SeeAlso: #M073
  2020. ----------mFEE00310--------------------------
  2021. MEM FEE00310h - Pentium - LOCAL APIC - INTERRUPT COMMAND REGISTER (ICR)
  2022. Size:    4 BYTEs
  2023. Note:    this is the high half of the 64-bit ICR
  2024. SeeAlso: MEM FEE00300h,#M073
  2025. ----------mFEE00320--------------------------
  2026. MEM FEE00320h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 0 (TIMER)
  2027. Size:    4 BYTEs
  2028. SeeAlso: MEM FEE00350h,MEM FEE00370h,MEM FEE003E0h,INT 70h
  2029.  
  2030. Bitfields for Pentium APIC timer local vector entry:
  2031. Bit(s)    Description    (Table M075)
  2032.  7-0    interrupt vector number
  2033.  11-8    reserved
  2034.  12    delivery status (read-only)
  2035.     1 = interrupt being sent to APIC
  2036.  15-13    reserved
  2037.  16    interrupt delivery disabled
  2038.  17    timer mode (0=one-shot, 1=periodic)
  2039.  31-18    reserved
  2040. SeeAlso: #M077,#M076
  2041. ----------mFEE00330--------------------------
  2042. MEM FEE00330h - Pentium - LOCAL APIC - RESERVED
  2043. SeeAlso: MEM FEE00000h
  2044. ----------mFEE00340--------------------------
  2045. MEM FEE00340h - Pentium - LOCAL APIC - RESERVED
  2046. SeeAlso: MEM FEE00000h
  2047. ----------mFEE00350--------------------------
  2048. MEM FEE00350h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 1 (LINT0)
  2049. Size:    4 BYTEs
  2050. SeeAlso: MEM FEE00320h,MEM FEE00360h
  2051.  
  2052. Bitfields for Pentium APIC LINTx local vector entry:
  2053. Bit(s)    Description    (Table M076)
  2054.  7-0    interrupt vector number
  2055.  10-8    delivery mode
  2056.     000 fixed
  2057.     100 NMI
  2058.     111 external interrupt (8259A-compatibility)
  2059.  11    reserved
  2060.  12    delivery status (read-only)
  2061.     1 = interrupt being sent to APIC
  2062.  13    interrupt pin is active low
  2063.  14    remote IRR
  2064.  15    trigger mode
  2065.     0 edge-sensitive
  2066.     1 level-sensitive
  2067.  16    interrupt delivery disabled
  2068.  31-17    reserved
  2069. SeeAlso: #M075
  2070. ----------mFEE00360--------------------------
  2071. MEM FEE00360h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 2 (LINT1)
  2072. Size:    4 BYTEs
  2073. SeeAlso: MEM FEE00350h,MEM FEE00370h,#M076
  2074. ----------mFEE00370--------------------------
  2075. MEM FEE00370h - Pentium - LOCAL APIC - LOCAL VECTOR TABLE ENTRY 3 (Error)
  2076. Size:    4 BYTEs
  2077. SeeAlso: MEM FEE00320h,MEM FEE00370h
  2078. ----------mFEE00380--------------------------
  2079. MEM FEE00380h - Pentium - LOCAL APIC - INITIAL COUNT REGISTER (ICR) TIMER
  2080. Desc:    timer start value, which together with the Divide Configuration
  2081.       Register also determines its period when periodic mode has been
  2082.       selected
  2083. SeeAlso: MEM FEE00000h,MEM FEE00390h
  2084. ----------mFEE00390--------------------------
  2085. MEM FEE00390h - Pentium - LOCAL APIC - CURRENT COUNT REGISTER (CCR) TIMER
  2086. Desc:    current timer count; when this value reaches zero, an interrupt is
  2087.       generated
  2088. Note:    read-only
  2089. SeeAlso: MEM FEE00380h
  2090. ----------mFEE003A0--------------------------
  2091. MEM FEE003A0h - Pentium - LOCAL APIC - RESERVED
  2092. SeeAlso: MEM FEE00000h
  2093. ----------mFEE003B0--------------------------
  2094. MEM FEE003B0h - Pentium - LOCAL APIC - RESERVED
  2095. SeeAlso: MEM FEE00000h
  2096. ----------mFEE003C0--------------------------
  2097. MEM FEE003C0h - Pentium - LOCAL APIC - RESERVED
  2098. SeeAlso: MEM FEE00000h
  2099. ----------mFEE003D0--------------------------
  2100. MEM FEE003D0h - Pentium - LOCAL APIC - RESERVED
  2101. SeeAlso: MEM FEE00000h
  2102. ----------mFEE003E0--------------------------
  2103. MEM FEE003E0h - Pentium - LOCAL APIC - TIMER DIVIDE CONFIGURATION REGISTER
  2104. SeeAlso: MEM FEE00000h,MEM FEE00320h
  2105.  
  2106. Bitfields for Pentium APIC timer divide configuration:
  2107. Bit(s)    Description    (Table M077)
  2108.  3,1,0    divisor
  2109.     000 divide by 2
  2110.     001 by 4
  2111.     010 by 8
  2112.     ...
  2113.     110 by 128
  2114.     111 by 1
  2115.  2    zero (0)
  2116.  31-4    reserved
  2117. Note:    the divisor determines the timer's time base relative to the processor
  2118.       clock
  2119. SeeAlso: #M075
  2120. ----------MFFFF0010--------------------------
  2121. MEM FFFFh:0010h - HIGH MEMORY AREA
  2122. Size:    65520 BYTEs
  2123. --------!---CONTRIBUTORS---------------------
  2124. Robin Walker    <rdhw@cus.cam.ac.uk> ORIGINAL FILE
  2125. Wim Osterholt    <wim@djo.wtm.tudelft.nl> or Wim Osterholt 2:512/56
  2126.     EHD floppy = 'KEGAN 4.0M Floppy Drive Controller.',
  2127.              'ACME FX4-K7tb2 v:2.5 11/5/91'
  2128. Stanley Appel    <appel@stack.urc.tue.nl>
  2129. Matthias Paul    <mpaul@ibh.rwth-aachen.de>
  2130. --------!---Admin----------------------------
  2131. Highest Table Number = M077
  2132. --------!---FILELIST-------------------------
  2133. Please redistribute all of the files comprising the interrupt list (listed at
  2134. the beginning of the list and in INTERRUP.1ST) unmodified as a group, in a
  2135. quartet of archives named INTER52A through INTER52D (preferably the original
  2136. authenticated PKZIP archives), and the utility programs in a two additional
  2137. archives called INTER52E.ZIP and INTER52F.ZIP
  2138.  
  2139. Copyright (c) 1989,1990,1991,1992,1993,1994,1995 Ralf Brown
  2140. --------!---CONTACT_INFO---------------------
  2141. Internet: ralf@pobox.com (currently forwards to ralf@telerama.lm.com)
  2142. UUCP: {uunet,harvard}!pobox.com!ralf
  2143. FIDO: Ralf Brown 1:129/26.1
  2144.     or post a message to me in the DR_DEBUG echo (I probably won't see it
  2145.     unless you address it to me)
  2146. CIS:  >INTERNET:ralf@pobox.com
  2147.